c ++是否需要释放具有保留内存的局部变量?

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)