在 Java 世界进行了长时间的冒险之后,我回到了 C++,并且正在重新理解 C++ 如何使用指针的概念/语法。
举几个例子。
在java中
public void MyFunc(MyClass class)
{
class.DoSomething;
}
是相同的
void MyFunc (MyClass* class)
{
class->DoSomething;
}
和
public MyClass GetMyClass()
{
return class;
}
是一样的(看着它我意识到我必须将我返回的内容存储在一个指针中,所以它不一样......)
MyClasss* GetMyClass()
{
return (&class); // could you say here "return <-MyClass"
}
相反,也许这是相同的(看起来这应该返回位于“&MyClass”的 MyClass 对象,因此您可以从返回的任何位置直接在此位置编辑此对象)
MyClasss GetMyClass()
{
return (&class);
}
你也可以使用 -> 来访问存储在指针指向的地址的对象,你可以使用 <- 来存储地址吗?
最后,有什么意义
void MyFunc(MyClass1 &class1, MyClass2 &class2)
对比
void MyFunc(MyClass1* class1, MyClass* class2)
是不是您首先要在地址处传入数据存储,而在示例 2 中,您要传入要使用的数据的地址?