[問題] Class的member是class,如何初始化?

看板C_and_CPP作者 (月)時間9年前 (2015/01/06 23:02), 編輯推噓3(307)
留言10則, 6人參與, 最新討論串1/1
開發平台(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

01/06 23:38, , 1F
寫在constructor的initialization list 裡面
01/06 23:38, 1F

01/06 23:52, , 2F
All():objA(123){}
01/06 23:52, 2F

01/07 00:46, , 3F
如果是has a的關係,a的建構子會比all的建構子先執行
01/07 00:46, 3F

01/07 09:01, , 4F
我想到的方法是All的member 宣告pointer of class A,
01/07 09:01, 4F

01/07 09:01, , 5F
在All的constructor中new A就能傳參數了
01/07 09:01, 5F

01/07 10:07, , 6F
謝謝各位:)我試了ALL():objA(123)是可以的. 但有辦法
01/07 10:07, 6F

01/07 10:11, , 7F
讓123也變成參數嗎?如ALL(int Len):objA(Len),想把
01/07 10:11, 7F

01/07 10:11, , 8F
參數從ALL傳給A...?
01/07 10:11, 8F

01/07 10:18, , 9F
耶...好像降就可以了耶XD
01/07 10:18, 9F

01/07 11:00, , 10F
對阿, 這樣就可以了
01/07 11:00, 10F
文章代碼(AID): #1Kg_a2jS (C_and_CPP)