gpt4 book ai didi

c++ - 创建 C++ 对象

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

我注意到有两种方法可以创建 C++ 对象:

BTree *btree = new BTree;

BTree btree;

据我所知,唯一的区别在于类对象的访问方式(. vs. -> 运算符),当使用第一种方式时,私有(private)整数被初始化为 0。

哪种方式更好,有什么区别?

您如何知道何时使用其中一种?

最佳答案

两个区别:

  • 他们在内存的不同部分(堆与堆栈)创建对象

  • 对象的生命周期不同:在第一种情况下,代码显式管理内存分配,还必须显式管理释放(使用 delete/delete[])。

    在第二种情况下,对象在其封闭范围(方法、方法内的嵌套 block 或类)的末尾自动释放

你使用哪一个主要取决于对象的生命周期(它是否应该比创建它的方法生命周期更长)。

关于c++ - 创建 C++ 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2752084/

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