回 帖 发 新 帖 刷新版面

主题:请教一下!

我现在刚刚开始学习c++,遇到一个问题向高手请教一下:
是用new分配的内存不是一定要用delete释放嘛,但是为什么我在书上看的有的没有释放啊?比如:
for(i=0;i<500;i++)
{
pCat=new Cat;
pCat->SetAge(2*i+1);
Family[i]=pCat;
}
下面还有其他程序段但是没有delete释放内存,不知道怎么回事。

回复列表 (共1个回复)

沙发

注意:
    从你的程序可以看出来: 你的pCat是一个Cat的对象指针!

既然是一个对象!她就不需要用delete释放!
为什么呢?  主要是因为 你所定义的类Cat 系统会自动给你添加一个析构函数~Cat(){}

她的作用就是释放内存的!(如果有这样的指针的话!)

当然如果你 定义了一个析构函数 那么系统就不会给你 这样的一个析构函数了,
此时你就得自己释放内存了!


知道了吗!!
如果还不清楚!
私下交流!   QQ:  272015303

我来回复

您尚未登录,请登录后再回复。点此登录或注册