gpt4 book ai didi

c++ - 是否可以先创建 C++ 指针,而不是先创建一个变量,然后再为其创建一个指针?

转载 作者:太空宇宙 更新时间:2023-11-04 15:05:29 24 4
gpt4 key购买 nike

在我所有的类(class)中,教授们都强调使用这种技术来创建项目和传递项目的指针:

已更新 只是打字时的一个错误。 Java 太习惯了。

Item item;
Item* pItem = &item;

现在您可以使用 pItem 安全地传递 item 而无需在内存中复制 item。但是,如果我只是执行以下操作怎么办:

Item* item = new Item;

然后我有一个指针,我可以在 main 中或你有什么取消引用,还有一个点,我可以简单地传递并作为一个变量,并确信它不会被复制。

创建新对象时创建指针有问题吗?

此外,在使用 Java 一段时间后我将回到 C++,以便在 ALLEGRO5 度过我的暑假,所以有人可以清楚地解释在 CPP 中创建新对象的不同方法,以及每种方法的实际作用吗?

是否:

Item item;

实际上是创建一个新的 Item 对象,还是像 Java 那样只是一个空引用?

最佳答案

呃,这不起作用,因为 new Item 返回一个 Item*:

Item item = new Item;

这是堆分配(即通过delete)对象释放的标准实践:

Item* item = new Item;

我想你的教授实际上说过:

Item item;
Item* pItem = &item;

这是堆栈分配(即通过离开其范围释放)对象的标准做法。

关于c++ - 是否可以先创建 C++ 指针,而不是先创建一个变量,然后再为其创建一个指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16312870/

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