【发布时间】:2014-11-26 14:06:28
【问题描述】:
来自Java,我倾向于在C++ 中一直使用new 关键字,但这不是很危险吗?我知道堆分配等等,但是在 C++ 中,new 真的有必要吗?
我想我的问题是如何在没有 new 关键字的情况下初始化对象?
class Foo {
int bar;
}
给定这个类,这是用 new 关键字实例化它:
Foo aFoo = new Foo;
这是在没有 new 的情况下实例化 Foo 对象的正确方法吗?
Foo aFoo = Foo;
【问题讨论】:
-
当某些东西的大小在编译时是未知的。另外,使用智能指针 (C++11)
-
忘掉你对 Java 的了解。一切。将 C++ 视为完全不同且不相关的东西,因为你知道,它是。
-
但事实并非如此。 Java 语法基于 C++ 语法,Java 旨在类似于 C++,但解决了 C++ 中一些最烦人的问题,例如指针和可移植性。我的问题现在纯粹是语法问题,只与 C++ 有关。
-
您的实例化
Foo对象的示例都不是有效的 C++。第一个是有效的Java。你真的需要a good C++ book。 -
@MitchellCarroll:我告诉你,是的。
标签: c++ new-operator