Вызов метода производного класса

У меня есть базовый класс:

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?
}

Теперь, каков наилучший способ вернуть скорость?

0
задан Nick 4 July 2012 в 12:34
поделиться