如果我有一个名为 Object 的类,那么创建一个这样的实例有什么区别:
Object var;
和:
Object* var = new Object();
?
最佳答案
此处您在堆栈上创建了 var:
Object var;
所以在上面,var
是实际的对象。
此处您在堆上创建 var(也称为动态分配):
Object* var = new Object()
在堆上创建对象时,必须在使用完后对其调用delete
。此外,var
实际上是一个指针,它保存着类型为Object
的对象的内存地址。在内存地址存在实际对象。
更多信息:See my answer here on what and where are the stack and heap .
关于c++ - Object var 和 Object* var = new Object() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3053851/