У меня есть базовый класс:
class motorcycle
{
public:
virtual int speed()
{ return 0; }
}
И некоторых классов, которые наследуют базовый класс (всего 2 в примере, но у меня может быть много классов):
class honda: public motorcycle
{
public:
int speed()
{ return 2; }
}
class yamaha: public motorcycle
{
public:
int speed()
{ return 1; }
}
У меня есть указатель на базовый класс, который указывает на один из производных классов:
honda* h = new honda();
...
int speed = get_speed(h);
Где get_speed
это:
int get_speed(motorcycle* m)
{
// How to return speed according to m class?
}
Теперь, каков наилучший способ вернуть скорость?