Quote:
引用第16楼perfect_刘于2006-11-19 19:41发表的:
就是 你对ia重新分配一块内存,但是ia以前指向的内存你就没有管了!!
析构函数只是对象销毁时候调用的,此时也没有调用
应该先释放在从新分配
恩刚才也想到了这个,那蝈蝈看下现在行不?
void IntArray::inti(int size, int* array)
{
_size = size;
if(ia)
delete [] ia;
else
ia = new int[_size]; //这个 new 析构函数释放了的吧
for(int ix=0; ix<_size; ++ix)
if(!array)
ia[ix] = 0;
else
ia[ix] = array[ix];
}
[ 此贴被ollo在2006-11-19 20:08重新编辑 ]