Использовать защищенный член в операторе - PullRequest
0 голосов
/ 23 января 2020

Можете ли вы, ребята, помочь мне решить эту простую проблему, добавив дополнительный, без изменения существующего кода?

class ride {
public:
    int km;
};

class moto : protected ride {
public:
    moto(int k) { km = k; };
};

int operator-=(moto m, int km) {
    return m.km - km;
}

1 Ответ

0 голосов
/ 23 января 2020

Вы можете добавить члена в класс moto. Обратите внимание, что, как уже было сказано, ride не следует называть членом, это базовый класс, а moto является производным от ride.

Поскольку ride является базовым классом moto , moto имеет доступ к чему-либо в ride, что не является приватным. Теперь я не знаю, что говорит это задание, но похоже, что вы ищете это:

#include <iostream>
class ride {
public:
    int km;
};

class moto : protected ride {
public:
    moto(int k) { km = k; };
    void operator-= (int in_km) { km -= in_km; }
    int operator()() const { return km; }
};

int main() {
    moto obj(12);
    obj -= 5;
    std::cout << obj() << std::endl;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...