读书人

帮忙分析一段C++代码解决方法

发布时间: 2013-03-27 11:22:42 作者: rapoo

帮忙分析一段C++代码
刚接触C++,碰到一段代码 ,帮忙看下。谢谢了帮忙分析一段C++代码解决方法

#include <iostream>
using namespace std;

class A
{
public:
A()
{
doSth();
}
virtual void doSth()
{
cout<<"I am A"<<endl;
}
};
class B:public A
{
public:
virtual void doSth()
{
cout<<"I am B"<<endl;
}
};

int main()
{
B b;
return 0;
}


运行结果:I am A
为什么class B虚函数不执行呢?
[解决办法]
B类继承A类,所以B类的对象应该调用A类的构造函数。如果,想要执行B类中的函数需要明确指明对象b去调用该函数。

个人愚见。
[解决办法]
B b先构造基类对象就是A,A构造函数中doSth调用的是自己的,然后构造子类对象就是B了,B调用的默认的缺省构造函数,当然不执行doSth了

读书人网 >C++

热点推荐