gpt4 book ai didi

c++ - 何时以及为何在堆 C++ 上声明成员变量

转载 作者:IT老高 更新时间:2023-10-28 22:25:39 25 4
gpt4 key购买 nike

好的,所以我是 C++ 编程的新手,我已经四处寻找了几天的决定性答案。我应该什么时候在堆和堆栈上声明成员变量?我发现的大多数答案都涉及其他问题,但我想知道何时最好将堆用于成员变量,以及为什么堆成员而不是堆叠成员更好。

最佳答案

首先要掌握两个重要概念:

  1. 应该避免考虑“堆”和“堆栈”。这些是您的编译器/平台的实现细节,而不是语言的实现细节。1 相反,请考虑对象生命周期:对象的生命周期是否与其“父对象的生命周期”相对应“,或者它应该活得更久?如果需要后者,则需要使用 new(直接或间接)动态分配对象。

  2. 成员变量总是与其父变量具有相同的生命周期。成员变量可能是一个指针,它指向的对象很可能有一个独立的生命周期。但是指向的对象不是成员变量。

但是,您的问题没有一般性的答案。粗略地说,除非有充分的理由,否则不要动态分配。正如我上面所暗示的,这些原因通常对应于生命周期需要与其“父级”不同的情况。


<子> 1。事实上,C++ 标准并没有真正谈论“堆”和“栈”。在优化或一般考虑性能时,它们很重要,但从程序功能的角度来看,它们大多无关紧要。

关于c++ - 何时以及为何在堆 C++ 上声明成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11477523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com