同意楼上的。
可以定义成protected,派生类只要是public或是protected继承,都可以使用。
如果定义成private,应该是不行吧。(没试过)
虚函数的封装性受基类中声明的影响。

解决方案 »

  1.   

    定义为protected 的,派生类的对象可以直接使用。(当然也可以重载)。
    定义为private 的,派生类的对象不可以直接使用,只能重载。
      

  2.   

    当然可以了.可以在函数中调用!
    #include <stdio.h>
    #include <math.h>
    #include <conio.h>
    #include <iostream.h>
    class Base
    {
    protected:
    virtual void Display()
    {
    cout<<"Display in Base"<<endl;
    }
    public:
    void Fun()
    {
    Display();
    }
    }b;class Sub:public Base
    {
    protected:
    virtual void Display()
    {
    cout<<"Display in Sub"<<endl;
    }
    }s;
    void main(void)
    {
    Base *pb;
    pb=&b;
    pb->Fun();
    pb=&s;
    pb->Fun();
    getch();
    }
      

  3.   

    private 不可以~~~~ protected 可以~~~~
      

  4.   

    private 就没有虚函数的意义了啊!protected到是可以!
      

  5.   

    可以调用, 通过scope(翻译为 域作用符)
      

  6.   

    protected和private都可以,但一般来说(按照惯例)是有区别的,protected的virtual函数表示我已经实现了一个实现,你可以使用,并且可以不用重新实现,private表示我没有实现,你必须实现它