我创建了一种从车主那里换车的方法 .
bool owner::changeCar(owner& other, car& mCar){
if(this == &other) return false;
car* m = &this.mCar;
this->mCar =&mCar;
other.mCar = m;
return true;
}
但我收到错误
在'this'中请求成员'mCar',这是非类型'owner * const'
在线 car* m = &this.mCar;
.
有人知道我做错了什么 . 车主拥有私家车 .
3 回答
你在下面的行中正确地做到了;
this
是一个指针,因此您需要->
才能访问其成员mCar
. 此外,mCar
显然已经是一个指针(至少你用它作为一个)所以&
在它之前是冗余的 .您的代码无法编译的原因是
this
是一个指针,而不是一个引用;因此,您需要使用->
运算符而不是.
运算符 .在一行中你写
this.mCar
并在下一个this->mCar
. 看起来不对,不是吗?在这种情况下,第二个版本是正确的,因为this
是指向owner
的指针,而不是owner
类型的对象或引用 .