自定义类使用delete[]时候出错

emyueguang emyueguang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有一个问题,关于delete运算符的调用,先看一个类的定义
class Int
{
public:
Int(){};
Int(Int& value){}
Int(int value){}
~Int(){};

};

这是我自己定义的一个类,中间先不实现任何的东西。
//Demo 3.
Int* pInt = new Int(10);
//delete[] pInt; //带[]的使用delete会出bug
delete pInt;

int* pi = new int(10);
delete[] pi; //这个就不会出bug

我使用的开发工具是VS2010,请教下,为什么我自定义的类就出现不可以使用delete[]来释放内存空间?而内置的类型就可以(在定义的不是数组的基础上调用delete[],如果是定义的Int* pArr = new Int[10], 调用delete[] pArr是没有错误的)


请问我自定义的类应该添加一些什么处理,就可以使
Int* pInt = new Int(10);
delete[] pInt; //带[]的使用delete会出bug
不会出错?
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
emyueguang
C++ 语言 65,214 成员 250,514 内容