31/08/2010, 11:49
|
| | Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 14 años, 4 meses Puntos: 0 | |
Ligadura dinámica Hola, estoy haciendo una práctica de ligadura dinámica de la universidad.
Al compilar me suelta el siguiente error:
Código:
Undefined symbols:
"AvionPasajeros::~AvionPasajeros()", referenced from:
_main in test10.o
_main in test10.o
_main in test10.o
"vtable for AvionPasajeros", referenced from:
AvionPasajeros::AvionPasajeros(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Coordenadas, float, int)in test10.o
"vtable for Avion", referenced from:
Avion::Avion() in colaaviones.o
Avion::Avion(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Coordenadas)in test10.o
"Avion::~Avion()", referenced from:
ColaAviones::Nodo::~Nodo() in colaaviones.o
"Avion::CalcularCombustible()", referenced from:
ColaAviones::CombustibleTotal() in colaaviones.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Viendo el mensaje de error parece que el problema está en los constructores y destructores, pero no logro resolverlo.
Aquí os pongo las clases:
Código:
class Angulo{
public:
Angulo(int g=0, int m=0, int s=0, char o='0'):grados(g), minutos(m), segundos(s), orientacion(o){}
void MostrarAngulo() const;
private:
int grados, minutos, segundos;
char orientacion;
};
class Coordenadas{
public:
Coordenadas():latitud(Angulo()), longitud(Angulo()){}
Coordenadas(const Angulo l, const Angulo lo):latitud(l), longitud(lo){}
void MostrarCoordenadas() const;
private:
Angulo latitud, longitud;
};
class Avion{
public:
Avion(){ }
Avion(const string ide, const Coordenadas dest):identificador(ide), destino(dest){}
virtual ~Avion();
virtual void MostrarAvion() const;
virtual float CalcularCombustible();
protected:
string identificador;
Coordenadas destino;
};
class AvionAntiincendios: public Avion{
public:
AvionAntiincendios(){ }
AvionAntiincendios(const string ident, const Coordenadas dest, const float l)
:Avion(ident, dest), litros(l){}
~AvionAntiincendios();
void MostrarAvion() const;
float CalcularCombustible() const;
private:
float litros;
};
class AvionPasajeros: public Avion{
public:
AvionPasajeros(){ }
AvionPasajeros(const string ident, const Coordenadas dest, const float equip, const int dur)
:Avion(ident, dest), equipaje(equip), duracion(dur){}
~AvionPasajeros();
void MostrarAvion() const;
float CalcularCombustible() const;
private:
float equipaje;
int duracion;
};
class ColaAviones{
private:
struct Nodo{
Avion avion;
Nodo *sig;
};
typedef Nodo* PunteroNodo;
PunteroNodo inicio;
int tam;
public:
ColaAviones():inicio(NULL), tam(0){}
ColaAviones(const PunteroNodo &ini, const int tamano):inicio(ini), tam(tamano){}
~ColaAviones();
void InsertarAvion(Avion &avion);
void DespegarSiguienteAvion();
void MostrarSiguienteAvion();
void EliminarSiguienteAvion();
void MostrarTodosAviones() const;
float CombustibleTotal();
};
¿alguien puede ayudarme?
Última edición por paql; 31/08/2010 a las 12:10 |