为什么我需要调用new?

16 浏览
0 Comments

为什么我需要调用new?

这个问题已经有了答案:

可能的重复:

在 C++ 中何时使用“new”,何时不使用?

我何时应该在 C++ 中使用 new 关键字?

似乎我可以编写一个程序,而不使用单词new,并且我永远不必担心删除任何内容,那么为什么我要调用它呢?

据我所知,这是因为我会用尽堆栈内存。

这是正确的吗? 我的主要问题是,何时应该调用new

admin 更改状态以发布 2023年5月24日
0
0 Comments

这是因为在编译时可能无法确定您需要多少个对象,或者所需对象的类型。 new 运算符允许您动态分配对象,而不必预先知道这些信息。

以下是不事先知道对象类型的示例:

class Account { ... };
class CheckingAccount : public Account { ... };
class VisaAccount : public Account { ... };
...
Account *acct = type == "checking" ? new CheckingAccount : new VisaAccount;

0
0 Comments

这是一个对象生命周期的问题:如果你在栈上分配对象,当这些对象超出作用域时(比如在方法的结尾处),对象的析构函数将会被调用。这意味着,如果你将这些对象传递出它们被创建的方法,你将会得到指向内存的指针,它们随时可能被覆盖。

0