首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

析构函数中的一个小疑点!

2012-04-23 
析构函数中的一个小问题!!C/C++ codeclass Linear {public:int *ipint lengthint listSizeLinear():len

析构函数中的一个小问题!!

C/C++ code
class 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++ code
if( NULL != ip)   delete [] ip;
[解决办法]
探讨

C/C++ code
if( NULL != ip)
delete [] ip;

[解决办法]
除了上面的判断,还得把int *ip;定义在listSize后
因为初始化列表的顺序是数据成员声明的顺序
而不是你这样的顺序“length(0),listSize(10),ip(new int[listSize])”

listSize没初始化就初始化ip
[解决办法]
探讨
除了上面的判断,还得把int *ip;定义在listSize后
因为初始化列表的顺序是数据成员声明的顺序
而不是你这样的顺序“length(0),listSize(10),ip(new int[listSize])”

listSize没初始化就初始化ip

热点排行