包含纯虚函数的类不能有对象。这就是我对纯虚函数的想法。我有以下程序,它编译时没有任何错误。
#include<iostream>
using namespace std;
class Father {
   public:
   virtual void foo()=0;
};
class Son:public Father {
  // Nothing here 
};
int main() {
}
这是意料之中的,因为这两个类都没有对象。但是,当我尝试从包含纯虚函数的类中进行多级继承时,以下程序给了我错误。
#include<iostream>
using namespace std;
class Father {
   public:
   virtual void foo()=0;
};
class Son:public Father {
  // Nothing here
};
class Grand_Son:public Son {
    void foo() {
        cout<<"\nFunction foo From Grand_Son\n";
    }
};
int main() {
   Grand_Son x;
   x.foo();
}
错误如下所示。
In function 'int main()':|
|error: 'virtual void Grand_Son::foo()' is private|
|error: within this context|
||=== Build finished: 2 errors, 0 warnings ===|
这些错误是出乎意料的,因为我继承了这些类Son并且Grand_Son作为public.
是否可以对涉及纯虚函数的类进行多级继承?
有什么建议么?谢谢你。