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

对象返回函数的对象删除有关问题

2012-02-13 
对象返回函数的对象删除问题如下:typedef struct{......}Sclass A{private:...public:S Func(){S k....r

对象返回函数的对象删除问题
如下:
typedef struct
{
...
...
}S;

class A
{
private:
...
public:
S Func()
{
S k;
....
return k;
}
};

结构体对象 k 会不会在 return 操作后,由于没有进行delete 操作而引起内存泄漏?如果要 delete k,那应该如何操作?

[解决办法]
倒……
C++中没有new(申请堆空间),就不要delete。
k叫做局部对象,或者更贴切地说,叫“自动对象”,出了作用域就会自动销毁。
当返回Func时,会进行一个结构拷贝动作!
[解决办法]
搞清堆和栈是什么东西

管理好堆上的东西
至于站上的,不要在他自动消亡之后还用
[解决办法]
不会,
局部变量是在堆栈上的,系统帮你释放的
只有你用new在堆上申请的空间,才需要你去delete清理

热点排行