【发布时间】:2020-04-29 20:29:57
【问题描述】:
ClassName *name = new ClassName();
上面的这段代码是否创建了一个名为“name”并键入“ClassName”的对象?
如果是那么为什么我们不能像这样使用ClassName name();?
为什么我们使用“new”关键字?是因为我们在堆上创建它吗?
【问题讨论】:
-
你知道,你为什么使用
*吗?如果你知道这一点,回来再问同样的问题 -
new用于指定动态分配。为什么您会选择使用它而不是自动分配是上下文相关的,并且基于一长串因素。最好的办法是寻找预先存在的信息。 -
我知道它持有地址的指针
-
那么延伸一下,
operator new做了什么? -
ClassName name();这不是对象创建,而是函数声明。
标签: c++ object pointers new-operator