Muy buenas! No se si el titulo del tema explique bien el error pero tratare de explicarlo lo mejor que pueda.
Tengo una clase base llamada Vehicle y una clase derivada llamada scooter. Posteriormente creo varios objetos de la clase scooter y, me pide el ejercicio, que cree un vector de punteros a objetos de tipo Vehicle y que asigne los punteros a los objetos scooter.
Dicho esto, aqui esta el codigo:
class Vehicle{
protected:
string brand, plate; //Deberia ser Private
public:
Vehicle(string b, string p) : brand (b), plate (p){}
string get_brand(){
return brand;
}
string get_plate(){
return plate;
}
void set_brand (string b1){
brand = b1;
}
virtual void print();
};
//Task 5
class Scooter : public Vehicle{
public:
Scooter(string b, string p) : Vehicle(brand,plate){}
virtual void print(){
cout << "Scooter " << brand << ", Plate: " << plate << endl;
}
};
int main(){
int n = 5;
Vehicle *vehicle[3*n+2];
int i = 0;
for (i=0; i<=n; i++){
ostringstream convert,convert1,convert2;
convert << "DU-CC" << n;
Scooter sc("Honda 110cc",convert.str());
vehicle[i] = static_cast<Vehicle*> (&sc);
}
return 0;
}
La verdad que estoy en proceso de aprendizaje y primera vez que tengo que trabajar con clases bases y derivadas, por lo que no se si lo que estoy haciendo es correcto. Estando asi, el error que me da es
undefined reference to ´vtable for Vehicle´