在'this'中请求成员'mCar',这是非类型'owner * const'

时间:2012-03-23 11:57:23

标签: c++ oop methods

我创建了一种方法来交换车主的车辆。

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 个答案:

答案 0 :(得分:1)

你在下面的行中正确地做到了; this是一个指针,因此您需要->才能访问其成员mCar。此外,mCar显然已经是一个指针(至少你将它作为一个指针),所以&之前是多余的。

car* m = this->mCar;

答案 1 :(得分:1)

您的代码无法编译的原因是this指针,而不是引用;因此,您需要使用->运算符而不是.运算符。

答案 2 :(得分:0)

在一行中,您可以写下this.mCar并在下一个this->mCar中。看起来不对,不是吗?在这种情况下,第二个版本是正确的,因为this是指向owner的指针,而不是owner类型的对象或引用。