读书人

C++中类Class数组长度的有关问题

发布时间: 2012-09-14 23:00:49 作者: rapoo

C++中,类Class数组长度的问题

看如下代码:


注释掉OperatorNewCls的析构函数~OperatorNewCls()后,执行结果如下:

C++中,类Class数组长度的有关问题

差别在于OperatorNewCls数组arr的长度:定义析构函数后,长度为1004bytes,arr[-1]为数组元素个数25;注释析构函数后,长度为1000bytes,arr[-1]为随机数。

为什么定义析构函数后,需要存储数组长度?

可能是因为定义析构函数后,意味着用户需要自己控制“堆内存”的释放,因此需要“对数组里的每个对象,逐个调用析构函数”,所以需要存储数组元素个数。

而不定义析构函数时,意味着用户不会自己控制释放“堆内存”,所以就没必要逐个调用析构函数了,所以就没必要存储数组元素个数了。


读书人网 >C++

热点推荐