析构函数中的一个小疑点!
析构函数中的一个小问题!!C/C++ codeclass Linear {public:int *ipint lengthint listSizeLinear():len
析构函数中的一个小问题!!
C/C++ codeclass Linear {public: int *ip; int length; int listSize; Linear():length(0),listSize(10),ip(new int[listSize]) { } ~Linear(){ delete ip; }}
如这段代码,delete删除的为什么是ip,而用delete ip[]就会出错,明明ip初始化的位数组啊!
[解决办法]应该是这样吧 delete [] ip; 吧
[解决办法]delete [] ip;
[解决办法]C/C++ codeif( NULL != ip) delete [] ip;
[解决办法]
[解决办法]
除了上面的判断,还得把int *ip;定义在listSize后
因为初始化列表的顺序是数据成员声明的顺序
而不是你这样的顺序“length(0),listSize(10),ip(new int[listSize])”
listSize没初始化就初始化ip
[解决办法]