我来自Java,现在正在学习C++。
据我所知,使用指针与Java中的引用变量非常相似,因为它们都传递一个内存地址来操作值。所以我觉得我已经对它们有了相当好的理解。我也知道这些变量存储在堆上。
然而,我发现在C++中还有另一种声明变量的方式,不需要使用new运算符/指针,只需像这样进行声明:
Employee boss("Frank");
这将创建一个Employee类型的变量,参数为“Frank”。这些变量存储在堆栈中。
因此,您有两种非常不同的创建变量的方式,它们都具有自己独特的行为(还涉及内存管理?)。
我的问题是,什么时候适合使用指针和值?最佳实践是什么?大多数情况下,我应该如何知道以何种方式声明变量?