BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #38422同步于 2010/4/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

一个多继承的问题

dreams
2010/4/22镜像同步21 回复
class A{ public: A(){a = 1;} /*virtual*/ void fun(){cout <<"A::fun()"<< endl;} /*virtual*/ ~A(){cout <<"A::~A()"<< endl;} int a; }; class B{ public: B(){b = 2;} /*virtual*/ void fun(){cout <<"B::fun()"<< endl;} /*virtual*/ ~B(){cout <<"B::~B()"<< endl;} int b; }; class C : /*virtual*/ public A, /*virtual*/ public B{ public: C(){c = 3;} /*virtual*/ void fun(){c = 4;cout <<"C::fun()"<< endl;} /*virtual*/ ~C(){cout <<"C::~C()"<< endl;} int c; }; int main() { C c; C *pc = &c; pc->fun(); A *pa = &c; pa->fun(); B *pb = &c; pb->fun(); if (/*(void*)&c == (void*)(A*)&c*/pc==pa) { cout<<"pc"<<" "<<pc<<" pa "<<pa<<" pb "<<pb<<endl; cout<<"hello"<<endl; } if (/*(void*)&c == (void*)(B*)&c*/pc==pb) { cout<<"world"<<endl; } return 0; } 非虚继承虚函数时,每个基类调用自己的成员函数。 使用虚继承虚函数时,三个指针均调用派生类成员函数。 以上没有问题。 当if判断时,此程序将输出 hello 和world.奇怪的是pb不等于pa和pc。 当使用注释掉的表达方式时,只输出hello。 请达人解释下。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
jmpesp机器人#1 · 2010/4/22
呃 又是这些问题 貌似版上已经讨论很多了 可以搜索下版面 ps. 像这些问题 其实只要反汇编下 立马看的清清楚楚。。。
FadeToBlack机器人#2 · 2010/4/22
你好大牛,我水一帖 【 在 jmpesp (用猥亵的眼光看艺术) 的大作中提到: 】 : 呃 又是这些问题 貌似版上已经讨论很多了 可以搜索下版面 : ps. 像这些问题 其实只要反汇编下 立马看的清清楚楚。。。
zxsword机器人#3 · 2010/4/22
不会汇编 【 在 jmpesp (用猥亵的眼光看艺术) 的大作中提到: 】 : 呃 又是这些问题 貌似版上已经讨论很多了 可以搜索下版面 : ps. 像这些问题 其实只要反汇编下 立马看的清清楚楚。。。
FadeToBlack机器人#4 · 2010/4/22
这个可以学 【 在 zxsword (一切,一切都会变好的) 的大作中提到: 】 : 不会汇编
zxsword机器人#5 · 2010/4/22
......其实,我也是来水贴的... 【 在 FadeToBlack (拜萝卜教 | [敏感词]NMB) 的大作中提到: 】 : 这个可以学
FadeToBlack机器人#6 · 2010/4/22
水贴也要学汇编,一边学一遍水 不过这个问题问过的次数的确很多 【 在 zxsword (一切,一切都会变好的) 的大作中提到: 】 : ......其实,我也是来水贴的...
dreams机器人#7 · 2010/4/22
【 在 jmpesp 的大作中提到: 】 : 呃 又是这些问题 貌似版上已经讨论很多了 可以搜索下版面 : ps. 像这些问题 其实只要反汇编下 立马看的清清楚楚。。。 : -- : ................... 大牛头像都这么猛
FadeToBlack机器人#8 · 2010/4/22
问一下,你这个头像中的人物竞拍出价多少钱?或者你倒贴了? 【 在 jmpesp (用猥亵的眼光看艺术) 的大作中提到: 】 : 呃 又是这些问题 貌似版上已经讨论很多了 可以搜索下版面 : ps. 像这些问题 其实只要反汇编下 立马看的清清楚楚。。。
a206206机器人#9 · 2010/4/22
你们怎么都不回答楼主问题,说什么汇编。。。 ps:貌似我们大三学