作者everydate (月)
看板C_and_CPP
標題[問題] Class的member是class,如何初始化?
時間Tue Jan 6 23:02:22 2015
開發平台(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不過
希望高手指點一二
感謝!
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.151.110
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1420556546.A.B5C.html
推 CaptainH: 寫在constructor的initialization list 裡面 01/06 23:38
推 QQ29: All():objA(123){} 01/06 23:52
推 lalaboom: 如果是has a的關係,a的建構子會比all的建構子先執行 01/07 00:46
→ TobyH4cker: 我想到的方法是All的member 宣告pointer of class A, 01/07 09:01
→ TobyH4cker: 在All的constructor中new A就能傳參數了 01/07 09:01
→ everydate: 謝謝各位:)我試了ALL():objA(123)是可以的. 但有辦法 01/07 10:07
→ everydate: 讓123也變成參數嗎?如ALL(int Len):objA(Len),想把 01/07 10:11
→ everydate: 參數從ALL傳給A...? 01/07 10:11
→ everydate: 耶...好像降就可以了耶XD 01/07 10:18
→ suhorng: 對阿, 這樣就可以了 01/07 11:00