之间有什么区别
Class class("Test");
和
Class *class = new Class("Test");
哪一个更好?是否有差异?
答案 0 :(得分:0)
Class class("Test");
此对象位于堆栈上。它将在返回函数后被销毁。通常, stack allcation比 heap 更快。但它的大小是有限的(几MB,取决于编译器)。
Class *class = new Class("Test");
此对象位于堆上。完成使用后,程序员应该delete
。 heap 对大型对象很有用(例如,如果您的变量大于整个堆栈,它只能在堆上完成),和记忆保留。它的大小可以被视为整个存储空间。