父类能动态调子类的虚函数么?

gattuso8 2008-07-11 02:40:42
如题。想通过父类的构造函数,调用到子类的hit函数,打印出son hit,不知可能不可能?
class father
{
public:
father()
{
cout<<"fasther init"<<endl;
hit();
}

~father()
{
cout<<"fasther delete"<<endl;
}

virtual void hit()
{
cout<<"father hit"<<endl;
}
};

class son : public father
{
public:
son()
{
cout<<"son init"<<endl;
}

~son()
{
cout<<"son delete"<<endl;
}

virtual void hit()
{
cout<<"son hit"<<endl;
}
};



void main()
{
son* myson = new son();
delete myson;
myson = NULL;
}
...全文
230 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gattuso8 2008-07-11
  • 打赏
  • 举报
回复
谢谢 飞翔的鱼 的一直关注
结帐去拉。
xkyx_cn 2008-07-11
  • 打赏
  • 举报
回复
基本如此

[Quote=引用 10 楼 gattuso8 的回复:]
就是说调用者实际上哪中对象就会调用到谁的函数?如果是虚函数的话。
如果非虚,则跟指针目前的类型相关,不知对不对。。
[/Quote]
gattuso8 2008-07-11
  • 打赏
  • 举报
回复
就是说调用者实际上哪中对象就会调用到谁的函数?如果是虚函数的话。
如果非虚,则跟指针目前的类型相关,不知对不对。。
xkyx_cn 2008-07-11
  • 打赏
  • 举报
回复
能不能调用到子类虚函数,取决于调用者

[Quote=引用 8 楼 gattuso8 的回复:]
哦~~
另外,如果我想在父类的一个函数里调用一个虚函数
这个虚函数已经被子类重写
那么能够调用到子类的重写么?
[/Quote]
gattuso8 2008-07-11
  • 打赏
  • 举报
回复
哦~~
另外,如果我想在父类的一个函数里调用一个虚函数
这个虚函数已经被子类重写
那么能够调用到子类的重写么?
DarknessTM 2008-07-11
  • 打赏
  • 举报
回复
继承的时候,请把 析构函数定义为虚函数…… 这个是准则……
gattuso8 2008-07-11
  • 打赏
  • 举报
回复
不行啊,子类的构造还没有完成呢
---------------
这个很有道理。
K行天下 2008-07-11
  • 打赏
  • 举报
回复
不能调用
xkyx_cn 2008-07-11
  • 打赏
  • 举报
回复

/*运行结果:
fasther init
father hit
son init
son delete
fasther delete
*/
dahua010 2008-07-11
  • 打赏
  • 举报
回复
= =!被 hit 和 init 搞混了。。。看错了。
dahua010 2008-07-11
  • 打赏
  • 举报
回复
难道上述代码打印的不是 son hit?
xkyx_cn 2008-07-11
  • 打赏
  • 举报
回复
不行啊,子类的构造还没有完成呢

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧