2014-10-08 81 views
-6

在C中,您必须释放程序分配的内存。对于C++中的对象也一样吗?删除C++中的对象;

class Common 
{ 
    //some function declarations 
} 

void example() 
{ 
    Common obj; 
    //do stuff with obj 
    delete obj; 
} 

delete obj有多重要;这里如果我asume函数示例()将被调用一次?

+0

你不会,实际上你**不应该''删除'堆栈上的任何东西。那只有当你“新”这个物体。变量的内存将在变量超出范围时自动释放,在这种情况下,在您的“示例”功能结束时。 – CoryKramer 2014-10-08 20:02:44

+0

你的第一句话不完全正确。 – juanchopanza 2014-10-08 20:02:54

+0

这仅适用于动态分配的内存。 – 2014-10-08 20:03:00

回答

1

您没有对delete函数的本地对象进行分配。您必须删除使用运算符new分配的对象。

此外,delete运营商适用于指针。你的代码片段不会被编译。

+0

我明白了,谢谢! – user2858578 2014-10-08 20:05:47