[問題] 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