看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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