Вот код:
Код: Выделить всё
constexpr double pi = 3.14159;
class Motor_Distance{
private:
unsigned long count;
float wheel_diameter;
unsigned int pulses_per_revolution;
public:
unsigned long convToCount(){ return count; }
float convToMeters(){
return convToCount() * pi * wheel_diameter / pulses_per_revolution;
}
};
class Motor_Displacement{
long count;
float wheel_diameter;
unsigned int pulses_per_revolution;
public:
long convToCount(){ return count; }
float convToMeters(){
return convToCount() * pi * wheel_diameter / pulses_per_revolution;
}
};
int main(){
}
< /code>
Поскольку оба класса содержат повторный код, и я хочу удалить этот повторный код. Я мог бы достичь этого, используя базовый класс шаблона следующим образом: < /p>
constexpr double pi = 3.14159;
template
class Motor_Travel{
Travel_Type count;
float wheel_diameter;
unsigned int pulses_per_revolution;
public:
Travel_Type convToCount(){ return count; }
float convToMeters(){
return convToCount() * pi * wheel_diameter / pulses_per_revolution;
}
};
class Motor_Distance : public Motor_Travel{};
class Motor_Displacement : public Motor_Travel{};
int main(){
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -same-defi