如何调用子类调用父类虚函数的函数

推荐这篇日记的豆列
······在写代码时遇到了以下类似情况:
#include &iostream&
#include &string&
using namespace
void func1(string prefix) {
cout && prefix && "A::func1" &&
void func2(string prefix) {
cout && prefix && "A::func2" &&
func1(prefix + "
void func3(string prefix) {
cout && prefix && "A::func3" &&
class B: public A {
void func1(string prefix) {
cout && prefix && "B::func1" &&
void func3(string prefix) {
cout && prefix && "B::func3" &&
A::func3(prefix + "
func1(prefix + "& ");
func2(prefix + "
int main() {
b.func3("");
情况是,如果子类中的函数调用了父类的方法,而这个父类的方法调用了一个方法,这个方法同时在子类和父类中都有定义。输出结果为:
B::func3& A::func3& B::func1& A::func2&&& A::func1
可见在还是父类的方法被调用了。这可能是非虚函数在编译器时期就已经确定调用函数地址的原因吧。
阅读(...) 评论()父类是怎么样调用子类函数的?_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:270,014贴子:
父类是怎么样调用子类函数的?收藏
求回答内部运行机制# include&iostream&class A{public:A ( ) { pa = }virtual void fun ( ) = 0;static
A*};A* A::pa =class B :public A{public:B ( ) { };void fun ( ) { cout && &B::fun()&; }};int main ( ){BA::pa-&fun ( );return 0;}cocos就是通过这种办法执行单例化的pa调用的fun为什么会执行的是派生出来的fun
3D双端东方魔幻网游「大青云」勾魂公测,穿越逆转,封神故事,全新演绎!
未定义行为什么的……
经过测试发现父类的全局对象竟然和子类共用,这就说明了问题
不,问题还没解决
调用A的构造的时候this只能是B类型的啊
B构造的时候,调用A()应该是把pa指向了B中的A吧,然后用pa调用fun的时候就是B的fun了。
纯虚基类不能被实例化
fnu在A类是纯虚函数 没有具体实现 所以调用的是子类的this应该是A类的指针
虚函数,很简单,虚函数本质是个成员函数指针,在构造子类函数时,把他指向了子函数的实现。。。所以如果你以强制转化父类的方法来调用虚函数,结果是调用子类的。。。
虚函数的目的本来就是这个,重定向父类函数的实现,实现类似接口的目的。。哪个典型的例子,窗口相应,窗口的父类只有一些虚方法,比如鼠标按下时执行Func(),在父类已经实现了,父类判断鼠标按下时调用Func。。。但实际上Func没有实际内容,因为窗口父类只是实现这个机制,而不管实际运行内容。。。那么子类继承Func,可以实现该方法。。。
问题来了,有时窗口的上层管理者,希望在不安鼠标时,也执行Func(),上层管理吧所用窗口当以父类指针方式管理(子类杂七杂八,上层可能根本不知道有这个子类,就算知道,这根本管理不过来),所以统一用父类,调用父类的Func就是调用子类的Func,那目的就实现了。。。
虚函数在C语言使用中就有体现,目的就是便于管理,C语言经常将一个函数指针作为参数,并定义他的大致用途,但无具体实现,由所谓派生者实现,如常见的就是多级菜单(很多小设备上常用的操作方法),每个菜单都有个菜单标题,帮助内容描述,上下级链表指针,执行函数指针(未定义功能的虚函数)。。。那么你去定义一个菜单项,赋值标题,和实现函数的指针,并挂在管理链表中,那他实际上相当于从菜单结构体的一个派生。。。单C语言最大的问题,就是构造函数和析构函数需要手动调用,虚函数亲自赋值,全部成员都是公有,所以才有C++的出现。。。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 调用子类的构造函数 的文章

 

随机推荐