Re: [問題] new 多個 instance 但是constuctor又要 …

看板C_and_CPP (C/C++)作者 (我要加入劍道社!)時間16年前 (2009/06/09 14:45), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《littleshan (我要加入劍道社!)》之銘言: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.2

06/09 14:29,
所以就目前array的角度而不用vector,是做不到的嗎?
06/09 14:29
唉,硬要做也不是不行啦,但我真的很不想提這個做法, 這方法叫 placement new char* array = new char[sizeof(Time) * 5]; Time* t = new(array) Time(1, 2, 3); new(array + sizeof(Time)) Time(4, 5, 6); new(array + sizeof(Time)*2) Time(7, 8, 9); ... 這樣一來 t[0] ~ t[4] 就是你要的 Time 物件,是 new 出來的, 不過你要 delete 時必須手動呼叫 dtor: for(i = 0; i < 5; ++i) t[i].~Time(); delete[] array; // 絕對別呼叫 delete[] t 你不會想這麼做的,所以要嘛等待 C++0x compiler 的出現, 不然還是捏著鼻子,vector 將就用一下吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.2

06/09 15:26, , 1F
了解,感謝你!!
06/09 15:26, 1F
文章代碼(AID): #1ABWKXlS (C_and_CPP)
文章代碼(AID): #1ABWKXlS (C_and_CPP)