首页 文章

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

提问于
浏览
0

我创建了一种从车主那里换车的方法 .

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 回答

  • 1

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

    car* m = this->mCar;
    
  • 1

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

  • 0

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

相关问题