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就会编译不过 展开
{
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就会编译不过 展开
1个回答
展开全部
a1又不是指针,怎么能a1->a这样调用呢?a1.a才对吧。
http://zhidao.baidu.com/question/560326687?&oldq=1
看一下我以前的一个回答,用基类指针指向子类的原理,跟你的问差不多,可以解释为什么能用子类的构造函数初始化基类。
子类创建时候是先调用基类的构造函数,然后再调用子类的构造函数。
你用子类的构造函数是完全可以实例化基类的。
至于为什么用子类构造函数初始化父类,这个应该是锻炼你更好的理解子类与基类的关系,没有什么具体的特别意义。
http://zhidao.baidu.com/question/560326687?&oldq=1
看一下我以前的一个回答,用基类指针指向子类的原理,跟你的问差不多,可以解释为什么能用子类的构造函数初始化基类。
子类创建时候是先调用基类的构造函数,然后再调用子类的构造函数。
你用子类的构造函数是完全可以实例化基类的。
至于为什么用子类构造函数初始化父类,这个应该是锻炼你更好的理解子类与基类的关系,没有什么具体的特别意义。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询