C++ 有没有可能通过父类指针调用子类的虚函数

如题所述

不可以向下调用派生类的成员包括虚函数

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;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答