hamando funções de classe derivada de dentro de um vetor (c +

Tenho duas classes:

class Object {
public:
  Object();
  virtual void update();
  virtual void draw();

private:

protected:
  int x, y, tick;

}

class Unit : public Object {
public:
  Unit();
  void update();

private:

protected:

}

Defino os construtores e funções em arquivos .cpp separado

Aqui estão as definições para Object:

Object::Object() {
  x = y = 0;
};

Object::update() {
  tick ++;
};

Object::draw() {
  // All my draw code is in here.
};

Unidade:

Unit::Unit() : Object() {

};

Unit::update() {
  Object::update();
  // Then there's a bunch of movement related code here.
};

Tudo funciona bem individualmente, mas encontro um problema ao tentar chamar funções de dentro de um veto

vector<Object> objects;

Eu faço isso no meu void main ():

for (int i = 0; i < objects.size(); i ++) {
  objects[i].update();
  objects[i].draw();
};

Isto desenha tudo bem, mas chama apenas o objeto de objeto de update () e não a versão conforme definida pela classe derivada. Preciso criar um vetor para cada tipo derivado da classe Object para que ele funcione ou existe outra maneira de chamar as funções derivada

Obrigado antecipadamente - Seymore

questionAnswers(2)

yourAnswerToTheQuestion