C++生成对象的类成员与调用构造函数产生的矛盾

当我们创建一个类A,此类的成员可能会包含另一个类B。

# include<B.h>

class A{

public:
	...
	...
	B b;
}

对于B,他有自己的一套构造函数:

class B{

	B(int a);
	....

}

当我们创建A的对象时,会将其成员B的对象也构造出来。但如果构造函数中并没有体现B,想让B默认构造的话,就会报错或使得参数并不能很好地传递。因为我们的B必须使用有参构造。

A::A(){
	....
	....
	// 均与B无关,则报错
}

怎么样才能不报错,那就是在A的构造函数里面显式地构造B成员,从而避免B的默认构造。
最好的方法是使用new创建一个B指针。

# include<B.h>

class A{

public:
	...
	...
	B* b;
}
A::A(){
	...
	B = new B(int a);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值