【发布时间】:2010-12-06 12:28:48
【问题描述】:
我来自 Java,正在尝试学习 C++。
据我所知,使用指针与 Java 中引用变量的工作方式非常相似,因为您将内存地址传递给值。所以我觉得我对他们有了很好的了解。我也明白这些变量是存储在堆上的。
但是,我发现还有另一种方法可以在 C++ 中声明变量,而无需 new 运算符/指针简单地执行以下操作:
Employee boss("Frank");
这将创建一个以“Frank”为参数的 Employee 值。这些变量存储在堆栈中。
所以,您有这两种非常不同的创建变量的方式,并且都有自己独特的行为(还有内存管理?)。
我的问题是,什么时候适合使用指针 VS 值?最佳做法是什么?我应该如何知道大多数时候我想以哪种方式声明我的变量?
【问题讨论】:
-
“参考”是 C++ 中的一个特定术语,所以我稍微编辑了您的问题以使用更正确的“值”。
-
@John Millikin,感谢您清理我的帖子,您的意图是正确的。我有时仍然会偶然发现 C++ 命名法。
-
我建议在学习 C++ 之前先忘掉 Java。它们是不同的,如果你试图在它们之间进行类比,你只会混淆你自己和我。
-
@GMan,我对它们进行了比较,因为我发现指针类似于 Java 的参考变量。然后我说我理解 2 种 C++ 变量创建方法背后的行为,我想回答的唯一问题是何时适合使用特定的方法。