包含纯虚函数的类不能有对象。这就是我对纯虚函数的想法。我有以下程序,它编译时没有任何错误。
#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
.
是否可以对涉及纯虚函数的类进行多级继承?
有什么建议么?谢谢你。