Как Джеймс правильно указывает, правильный синтаксис *myObj
. Дело в том, что &myObj
дает вам адрес myObj
, который имеет тип myObjectClass**
. Вместо этого вы должны указать разыгрыватьmyObj
, чтобы получить экземпляр myObjectClass
, на который он указывает, следовательно, вы используете *
.
Кстати, поскольку он находится на данный момент, использование *myObj
приведет к неопределенному поведению, так как сам myObj
не был инициализирован. Если вам не нужно, чтобы динамически выделять myObjectClass
, вы могли бы быть лучше всего делать это:
myObjectClass myObj;
ClassName::Read(myObj);
Если динамическое распределение является обязательным, то вы можете сделать, например,
myObjectClass *myObj = new myObjectClass;
ClassName::Read(*myObj);
//...
delete myObj;
Просто будьте осторожны, если объект 'myObj' не создается в вызывающей функции (например, new myObjectClass), Read будет записывать на некоторый неопределенный адрес. – guga