C++ ed“heap”vs“stack”gubbins这是一个抽象漏洞。该语言允许您创建具有自动、静态和动态存储持续时间的对象。它们最终在物理或虚拟内存中的位置既不重要,也不由语言指定。重复“在堆栈上”和“在堆上”只会帮助传播这个噩梦…(是的,@R.Martin
C++ ed“heap”vs“stack”gubbins这是一个抽象漏洞。该语言允许您创建具有自动、静态和动态存储持续时间的对象。它们最终在物理或虚拟内存中的位置既不重要,也不由语言指定。重复“在堆栈上”和“在堆上”只会帮助传播这个噩梦…(是的,@R.Martin,c++,destructor,dynamic-memory-allocation,C++,Destructor,Dynamic Memory Allocation,ed“heap”vs“stack”gubbins这是一个抽象漏洞。该语言允许您创建具有自动、静态和动态存储持续时间的对象。它们最终在物理或虚拟内存中的位置既不重要,也不由语言指定。重复“在堆栈上”和“在堆上”只会帮助传播这个噩梦…(是的,@R.MartinhoFernandes…也有线程本地存储!)我编辑了答案,它现在是否更好地反映了现代术语?很好的答案--我发现这个主题非常有效,首先指出[自动]指针将被销毁,在继续讨论[dynamic]间接对象的语义之前。有了埃里克的更正,这个答案是完美的。@
ed“heap”vs“stack”gubbins这是一个抽象漏洞。该语言允许您创建具有自动、静态和动态存储持续时间的对象。它们最终在物理或虚拟内存中的位置既不重要,也不由语言指定。重复“在堆栈上”和“在堆上”只会帮助传播这个噩梦…(是的,@R.MartinhoFernandes…也有线程本地存储!)我编辑了答案,它现在是否更好地反映了现代术语?很好的答案--我发现这个主题非常有效,首先指出[自动]指针将被销毁,在继续讨论[dynamic]间接对象的语义之前。有了埃里克的更正,这个答案是完美的。@LightnessRacesinOrbit:看一看,我又做了一次编辑。技术上更准确,但我认为你失去了简洁性。
int main() {
Foo *leedle = new Foo();
return 0;
}
class Foo {
private:
somePointer* bar;
public:
Foo();
~Foo();
};
Foo::~Foo() {
delete bar;
}
int main() {
Foo *leedle = new Foo();
return 0;
}
Foo* leedle = new Foo();
void DoIt()
{
Foo* leedle = new leedle;
}
void DoIt()
{
Foo* leedle = new leedle;
delete leedle;
}
void DoIt()
{
std::auto_ptr <Foo> leedle (new Foo);
}
void DoIt()
{
std::unique_ptr <Foo> leedle = std::make_unique <Foo> ();
}
void Foo()
{
bool b = true;
{
int n = 42;
} // LINE 1
double d = 3.14;
} // LINE 2
void DoIt()
{
Foo* leedle = new leedle;
}