【发布时间】:2016-04-15 11:56:14
【问题描述】:
我想知道什么时候应该在 C++ 的堆栈上分配一个类?我在 Java 方面有很强的背景,在 Java 中,所有类都使用 new 关键字在堆上分配。在 C++ 中,我可以在堆栈分配和堆分配之间进行选择,但现在引入了智能指针,使用 std::unique_ptr 分配不转移所有权的所有内容更有意义。
我真的想不出在哪些情况下有必要或更好地使用堆栈分配。也许是为了在嵌入式系统中进行某种优化?
【问题讨论】:
-
仅供参考,
std::unique_ptr是一个基于“堆栈”的对象。顺便说一句,我们称之为自动和动态对象,因为 C++ 没有堆栈或堆的概念。恕我直言,您希望尽可能使用自动对象, -
您通常使用相反的原则:如果不需要动态分配,您就不要这样做。动态分配默认为“过早悲观化”。
标签: c++ memory-management