gpt4 book ai didi

C++ 指针对象与非指针对象

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

Possible Duplicate:
Why would you ever want to allocate memory on the heap rather than the stack?

Test2 *t2 = new Test2();
t2->test();

Test2 t3;
t3.test();

为什么要创建 Test2 类型的指针对象?为什么不只做Test2的非指针版本?我为什么要做指针对象?

在这里找到答案:

最佳答案

使用动态存储的原因包括(但可能不限于)

  1. 手动控制对象的生命周期 - 对象将一直存在,直到您明确销毁它为止
  2. 当对象的最终数量仅在运行时才知道时(如树中的节点数或数组中的元素数),根据需要创建尽可能多的对象。
  3. 对象类型的运行时控制(如多态对象的实际类型)。

如果没有区别,最好使用 t3 方法创建对象。除非必须,否则不要使用动态内存。但有时您确实必须这样做(请参阅上面的原因)。

关于C++ 指针对象与非指针对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2715198/

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