Re: [問題] new 多個 instance 但是constuctor又要 …
看板C_and_CPP (C/C++)作者littleshan (我要加入劍道社!)時間16年前 (2009/06/09 14:45)推噓1(1推 0噓 0→)留言1則, 1人參與討論串2/2 (看更多)
※ 引述《littleshan (我要加入劍道社!)》之銘言:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.151.2
推
06/09 14:29,
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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章