[問題] new與有引數建構子問題

看板C_and_CPP (C/C++)作者 (單車單車)時間14年前 (2012/06/05 18:46), 編輯推噓3(3010)
留言13則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 無 各位好,小弟想要實做一個雙重建構但不知道語法如何寫 問題是這樣: 兩個類別SampleSet:有不定數量的Sample, 以numOfSamples動態宣告 而之中的Sample裡面又有一個資料, 是不定長度的陣列, 以動態宣告 我希望是建出SampleSet的時候想要同時建出Sample,call Sample的建構子, 但要用建構子決定這兩個長度 但直接在建構子new東西的時候無法給參數, 想請問要怎麼在new東西的時候全部建好.. 其實問題應該改成...new(很多個)實例出來的時候要如何呼叫有引數的建構子... class Sample { protected: int* data; public: Sample(); Sample(int dimensionOfData) { data = new int[dimensionOfData]; } }; class SampleSet { protected: Sample* sample; int numOfSamples; public: SampleSet(); SampleSet(int numOfSamples, int dimension) { sample = new Sample[numOfSamples](dimension); //^^這邊是希望能呼叫Sample的有引數建構子並且建構好data的維度 //這是錯誤語法, 不過想請問有什麼正確語法可以做到這件事 } }; int main() { SampleSet set1(1,2); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.208.34 ※ 編輯: amozartea 來自: 60.250.208.34 (06/05 18:47) ※ 編輯: amozartea 來自: 60.250.208.34 (06/05 18:52)

06/05 19:25, , 1F
http://ideone.com/5M9mY 我不知道怎麼用new解這題 :/
06/05 19:25, 1F
非常感謝 原來是我不熟悉vector用法 ※ 編輯: amozartea 來自: 60.250.208.34 (06/05 20:10)

06/05 20:55, , 2F
嘿嘿嘿...
06/05 20:55, 2F

06/05 23:09, , 3F
感謝 不過我功力太弱看不懂.... 可以先請問一下.. Sample() = delete;這句什麼意思嗎... 是把預設建構元殺掉的意思嗎.. 原來可以這樣用@@" ※ 編輯: amozartea 來自: 114.34.216.47 (06/06 01:57)

06/06 02:13, , 4F
http://ppt.cc/Waz2 c++11新功能
06/06 02:13, 4F

06/06 10:01, , 5F
感謝...不過在下用的編譯器應該是03....|||
06/06 10:01, 5F

06/06 10:13, , 6F
是有什麼差...
06/06 10:13, 6F

06/06 10:29, , 7F
03?
06/06 10:29, 7F

06/06 11:31, , 8F
03是說compiler還沒支援c++11 feature吧? 舊的c++03
06/06 11:31, 8F

06/06 11:32, , 9F

06/06 11:33, , 10F
Defaulted And Deleted Functions以GCC要4.4以上才有
06/06 11:33, 10F

06/06 11:56, , 11F
我以為是說vs2003...
06/06 11:56, 11F

06/07 01:54, , 12F
感謝各位回答 雖然我最後放棄用建構元了...
06/07 01:54, 12F

06/07 01:55, , 13F
改用一個成員函數做事
06/07 01:55, 13F
文章代碼(AID): #1FpUEAEy (C_and_CPP)
文章代碼(AID): #1FpUEAEy (C_and_CPP)