我创建了一种方法来交换车主的车辆。
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;
行。
有人知道我做错了什么。 车主有一辆私家车。
答案 0 :(得分:1)
你在下面的行中正确地做到了; this
是一个指针,因此您需要->
才能访问其成员mCar
。此外,mCar
显然已经是一个指针(至少你将它作为一个指针),所以&
之前是多余的。
car* m = this->mCar;
答案 1 :(得分:1)
您的代码无法编译的原因是this
是指针,而不是引用;因此,您需要使用->
运算符而不是.
运算符。
答案 2 :(得分:0)
在一行中,您可以写下this.mCar
并在下一个this->mCar
中。看起来不对,不是吗?在这种情况下,第二个版本是正确的,因为this
是指向owner
的指针,而不是owner
类型的对象或引用。