我看到一个看起来像这样的函数定义

ClassName::Read(myObjectClass &temp)

我试图这样称呼它:
myObjectClass *myObj;
ClassName::Read(&myObj);

但这是不正确的。调用它的正确方法是什么?它必须是myObjectClass&类型

最佳答案

正如James正确指出的那样,正确的语法是*myObj。关键是&myObj为您提供了myObj的地址,该地址具有myObjectClass**的类型。相反,您想取消引用myObj以获得它指向的myObjectClass实例,因此您使用*

顺便说一句,目前,使用*myObj会导致不确定的行为,因为myObj本身尚未初始化。如果您不需要动态分配myObjectClass,则最好这样做:

myObjectClass myObj;
ClassName::Read(myObj);

如果必须进行动态分配,则可以执行例如
myObjectClass *myObj = new myObjectClass;
ClassName::Read(*myObj);
//...
delete myObj;

09-06 05:31