[问题] Class的member是class,如何初始化?

楼主: everydate (月)   2015-01-06 23:02:22
开发平台(Platform): VC++
额外使用到的函数库(Library Used): none
问题(Question):
首先宣告了一个class A
然后再宣告一个class ALL
而 ALL 中的一个成员变为为A (即class ALL 包含 class A)
我的问题是,如果class A 的constructor 需要一个参数
要怎么把这个参数透过 ALL 传给 A 呢?
例如:
class A
{
public:
int* Data;
A(int len) // A 的 constructor 需要一个参数
{
Data = new int [len];
};
};
class ALL
{
public:
A objA; //?? 这里要怎么写
};
试过几个方法,但都得不到正确结果,或是compile不过
希望高手指点一二
感谢!
作者: CaptainH (Cannon)   2015-01-06 23:38:00
写在constructor的initialization list 里面
作者: QQ29 (我爱阿蓉)   2015-01-06 23:52:00
All():objA(123){}
作者: lalaboom (lalaboom)   2015-01-07 00:46:00
如果是has a的关系,a的建构子会比all的建构子先执行
作者: TobyH4cker (Toby (我要当好人))   2015-01-07 09:01:00
我想到的方法是All的member 宣告pointer of class A,在All的constructor中new A就能传参数了
楼主: everydate (月)   2015-01-07 10:07:00
谢谢各位:)我试了ALL():objA(123)是可以的. 但有办法让123也变成参数吗?如ALL(int Len):objA(Len),想把参数从ALL传给A...?耶...好像降就可以了耶XD
作者: suhorng ( )   2015-01-07 11:00:00
对阿, 这样就可以了

Links booklink

Contact Us: admin [ a t ] ucptt.com