Запрос на член 'mCar' в 'this', который имеет неклассовый тип 'owner * const' - PullRequest
0 голосов
/ 23 марта 2012

Я создал метод обмена автомобилями от владельцев.

bool owner::changeCar(owner& other, car& mCar){
  if(this == &other) return false;
  car* m = &this.mCar;
  this->mCar =&mCar;
  other.mCar = m;
  return true;
}

Но я получаю сообщение об ошибке

Запрос на член 'mCar' в 'this', которыйимеет не классовый тип 'owner * const'

в строке car* m = &this.mCar;.

Кто-то знает, что я делаю неправильно.У владельца класса есть личный автомобиль.

Ответы [ 3 ]

1 голос
/ 23 марта 2012

Причина, по которой ваш код не компилируется, заключается в том, что this является указателем , а не ссылкой ;поэтому вам нужно использовать оператор -> вместо оператора ..

1 голос
/ 23 марта 2012

Вы сделали это правильно в строке ниже;this - указатель, поэтому вам нужно -> для доступа к его члену mCar.Кроме того, mCar, по-видимому, уже является указателем (по крайней мере, вы используете его как единицу), поэтому & перед его избыточностью.

car* m = this->mCar;
0 голосов
/ 23 марта 2012

В одной строке вы пишете this.mCar, а в следующей this->mCar. Выглядит неправильно, не так ли? В этом случае вторая версия верна, поскольку this является указателем на owner, а не объектом или ссылкой типа owner.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...