Bar*_*o91 3 c++ delete-operator
我只是一个问题.我一直在寻找答案,但我可能找不到正确的标签或单词来找到解决方案......
问题是,如标题所示:是否需要释放局部变量(具有保留内存)?我的意思是,例如,如果我有以下功能:
myClass* myFunction(){
myClass* A = new myClass;
return A;
}
Run Code Online (Sandbox Code Playgroud)
如果是"是",我应该在哪里打电话给"删除"?"回归"之前和之后都是无稽之谈......
我对吗?
doc*_*ove 13
new除非你需要,否则不要使用.
这避免了new,因此不需要删除
myClass myFunction(){
myClass A;
return A;
}
Run Code Online (Sandbox Code Playgroud)
如果您认为需要指针,请考虑使用智能指针.
如果你想要原始指针的兴奋,这个函数返回一个指向调用者的原始指针,他们必须在完成后删除它.
myClass * myFunction(){
myClass * A = new myClass;
return A;
}
myClass * thing = myFunction();
//stuff, that might throw an exception, so watch it
// smart pointers FTW
delete thing;
Run Code Online (Sandbox Code Playgroud)