У меня есть три разных класса, которые мы будем называть Locomotion, Walk и TimeInfo.
class TimeInfo {
int timeAtEnd() const {return mTimeAtEnd;}
}
class Locomotion {
// Stuff
virtual float getDistanceTravelled() const = 0;
virtual int getTimeAtEnd() const = 0;
}
class Walk : public Locomotion, public TimeInfo {
// Stuff
float Walk::getDistanceTravelled() const {return mDistanceTravelled;} // Works
int Walk::getTimeAtEnd() const {return TimeInfo::timeAtEnd();} // DO NOT WORK
}
Моя проблема в том, что в другой части моей программы у меня есть доступ к указателю на объект Locomotion,в действительности это может быть объект Walk или какой-либо другой класс, расширяющий как Locomotion, так и TimeInfo. Из этого указателя локомоции мне нужно получить значение timeAtEnd . У меня проблемы с этим, так как мне не разрешено, чтобы Locomotion сама расширяла TimeInfo, и когда я пытаюсь скомпилировать код, как указано выше, я получаю следующую ошибку:
error: non-member function 'int TimeInfo::timeAtEnd()' cannot have cv-qualifier
Насколько я понимаю проблемув том, что у меня на самом деле нет объекта TimeInfo, доступного внутри Walk :: getTimeAtEnd () , но я понятия не имею, как решить эту проблему ...