C++中,用子类对象来初始化父类的意义?例如class A-----class B:public A----main{A a(B()); }

classA{public:inta;voidfunA();}classB:publicA{public:intb;voidfunB();}intmain(){Bb;Aa... class A
{
public:
int a;
void funA();
}
class B:public A
{
public:
int b;
void funB();
}
int main()
{
B b;
A a(B());
A a1(B b1);
A a2(b);
reurn 0;
}
这样用子类B的构造函数或者实例对象来初始化父类A的实例对象有什么意义呢?
在gcc平台编译能通过,但是如果调用a或者a1->a就会编译不过
展开
 我来答
糖二灰
2013-06-25 · TA获得超过3940个赞
知道小有建树答主
回答量:1052
采纳率:75%
帮助的人:1056万
展开全部
a1又不是指针,怎么能a1->a这样调用呢?a1.a才对吧。
http://zhidao.baidu.com/question/560326687?&oldq=1
看一下我以前的一个回答,用基类指针指向子类的原理,跟你的问差不多,可以解释为什么能用子类的构造函数初始化基类。
子类创建时候是先调用基类的构造函数,然后再调用子类的构造函数。
你用子类的构造函数是完全可以实例化基类的。
至于为什么用子类构造函数初始化父类,这个应该是锻炼你更好的理解子类与基类的关系,没有什么具体的特别意义。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式