关于c++派生类利用构造函数初始化列表初始化基类的问题

c++派生类利用构造函数初始化列表初始化基类时如果形参少那么可以直接赋值,如果形参有67个,那么怎么利用对象赋值;classA{public:A(intaa,intbb,... c++派生类利用构造函数初始化列表初始化基类时如果形参少那么可以直接赋值,如果形参有6 7个,那么怎么利用对象赋值;
class A{
public:

A(int aa,int bb,int cc){....}

A(A &a){.......} //定义一个A类的构造函数,利用A类的对象的引用给A类对象初始化

private:

int a,b,c;

};
class B:public A{
public:

B(int dd,int ee,A a):A(a){....} //我想的就是利用临时A类的对象a给B类中继承的A类初始化

//但我不知道这样行不行

private:

int d,c;

};
请教高手,这种方法行不行,怎么用基类的对象给基类初始化
展开
 我来答
jackwind1987
2013-11-26 · TA获得超过2738个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:496万
展开全部

用同一个类的对象给初始化另一个对象,叫拷贝构造。

少年,这个是完全可以的!

A(A &a){.......}这个就叫拷贝构造函数
不过一般都加上const这么写
A(const A &a){.......}

B(int dd,int ee,A a):A(a){....} 
一般传递参数的时候都这么写:
B(int dd,int ee,const A& a):A(a){....}
更多追问追答
追问
还有个问题
B(int dd,int ee,const A& a):A(a){....} 中的a是一个已经定义的A类的对象,就是下面:
A a(1,2,3);
B b(1,2,a);
我想就是建立B类对象时不用先建立一个A类对象,直接在B类建立对象时定义一个A类的临时对象
形如:
B b(1,2,A a(1,2,3));
这样编译不通过,但有没有方法实现这样的初始化
追答
你还一半一半的问。。。
B b(1,2,A(1,2,3));

这样就行了,不用定义名称,直接调用构造函数,就能创建一个临时对象了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式