不可以向下调用派生类的成员包括虚函数
class Parent
{
public:
Parent(){};
virtual void foo_parent() = 0;// 纯虚函数
private:
};
class Son:public Parent
{
public:
Son(){};
virtual void foo_son(){ // 派生类虚函数
cout << "Foo of Son" << endl;
}
void foo_parent(){ // 重写父类的纯虚函数
cout << "Foo of Parent" << endl;
}
private:
};
int _tmain(int argc, _TCHAR* argv[])
{
Parent * p = new Son; // 定义父类类型的指针变量p,它指向子类。
p->foo_parent();
p->foo_son(); // 错误,父类类型的指针变量不可向下调用派生类自个的成员(包含虚函数)
delete p;
return 0;
}