avatar
经典C++问题求助# Programming - 葵花宝典
I*k
1
Given the class definition as follows, what the output of B objB ?
class A{
public: A(){this->foo();}
virtual void foo()=0 {cout<};
class B : public A{
public: B(){this->foo();}
virtual void foo(){cout<};
The output should be
A::Foo()
B::Foo()
原因是不是因为this只能表示当前的对象?还是因为vtable在ctor的时候还没有建立起
来?多谢了,我的概念不是很清楚。。。
avatar
w*g
2
我觉得在ctor中调用virtual function的结果是未知的。

【在 I****k 的大作中提到】
: Given the class definition as follows, what the output of B objB ?
: class A{
: public: A(){this->foo();}
: virtual void foo()=0 {cout<: };
: class B : public A{
: public: B(){this->foo();}
: virtual void foo(){cout<: };
: The output should be

avatar
h*e
3
http://www.codeguru.com/cpp/tic/tic0162.shtml

【在 I****k 的大作中提到】
: Given the class definition as follows, what the output of B objB ?
: class A{
: public: A(){this->foo();}
: virtual void foo()=0 {cout<: };
: class B : public A{
: public: B(){this->foo();}
: virtual void foo(){cout<: };
: The output should be

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。