作者littleshan (我要加入剑道社!)
看板C_and_CPP
标题Re: [问题] new 多个 instance 但是constuctor又要 …
时间Tue Jun 9 14:45:51 2009
※ 引述《littleshan (我要加入剑道社!)》之铭言:
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.87.151.2
1F:推 EragonJ:所以就目前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
2F:推 EragonJ:了解,感谢你!! 06/09 15:26