Cod*_*Guy 2 c++ reference object
我看到一个看起来像这样的函数定义
ClassName::Read(myObjectClass &temp)
Run Code Online (Sandbox Code Playgroud)
我试着像这样称呼它:
myObjectClass *myObj;
ClassName::Read(&myObj);
Run Code Online (Sandbox Code Playgroud)
但这是不正确的.什么是正确的方式来称呼它?它需要是类型myObjectClass&
正如詹姆斯正确指出的那样,正确的语法是*myObj.关键是&myObj给你的地址myObj,有一个类型myObjectClass**.你想要取消引用 myObj来获取myObjectClass它指向的实例,因此你使用*.
顺便说一句,就目前而言,使用*myObj会导致未定义的行为,因为myObj它本身尚未初始化.如果您不需要动态分配a myObjectClass,那么最好这样做:
myObjectClass myObj;
ClassName::Read(myObj);
Run Code Online (Sandbox Code Playgroud)
如果动态分配是必须的,那么你可以做例如
myObjectClass *myObj = new myObjectClass;
ClassName::Read(*myObj);
//...
delete myObj;
Run Code Online (Sandbox Code Playgroud)