La cosa es que me surgió un problema y ya llevo todo el día buscando una solución que hasta ahora no encontré.
El código es el siguiente:
Código:
#include <iostream>
using namespace std;
//Clase Persona
class Persona{
public:
Persona(long,char*);
Persona(); //Necesario
long getDNI();
char* getNombre();
protected:
long DNI;
char *NomApe;
};
//Clase Tiempo
class Tiempo{
public:
Tiempo(int, int, int);
Tiempo(const Tiempo &);
Tiempo(); //Necesario
int getHora();
int getMinuto();
int getSegundo();
private:
int Hora;
int Minuto;
int Segundo;
};
//Clase Empleado
class Empleado: public Persona{
Tiempo HorarioEntrada;
Tiempo HorarioSalida;
public:
Empleado(long, char*, int, int, int, int, int, int);
Empleado();
Tiempo getHorarioEntrada();
Tiempo getHorarioSalida();
};
//Clase Persona
Persona::Persona(long _DNI, char *_NomApe){
DNI=_DNI;
NomApe=_NomApe;
}
Persona::Persona(){
//Necesario
}
long Persona::getDNI(){
return DNI;
}
char* Persona::getNombre(){
return NomApe;
}
//Clase Tiempo
Tiempo::Tiempo(int _Hora, int _Minuto, int _Segundo){
Hora=_Hora;
Minuto=_Minuto;
Segundo=_Segundo;
}
Tiempo::Tiempo(const Tiempo &t){ //Constructor copia
Hora=t.Hora;
Minuto=t.Minuto;
Segundo=t.Segundo;
}
Tiempo::Tiempo(){
//Necesario
}
int Tiempo::getHora(){
return Hora;
}
int Tiempo::getMinuto(){
return Minuto;
}
int Tiempo::getSegundo(){
return Segundo;
}
//Clase Empleado
Empleado::Empleado(long _DNI, char* _NomApe, int He, int Me, int Se, int Hs, int Ms, int Ss): Persona(_DNI, _NomApe){
Tiempo HorarioEntrada(He, Me, Se);
Tiempo HorarioSalida(Hs, Ms, Ss);
}
Empleado::Empleado(){
//Necesario
}
Tiempo Empleado::getHorarioEntrada(){
return HorarioEntrada;
}
Tiempo Empleado::getHorarioSalida(){
return HorarioSalida;
}
int main(){
//Prueba de clase Persona
Persona p1(37425755,"Juan Perez");
cout << p1.getDNI() << endl;
cout << p1.getNombre() << endl;
//Prueba de clase Empleado
Empleado e1(37425806,"Jonhy Fester",8,30,15,12,30,15);
cout << e1.getDNI() << endl;
cout << e1.getNombre() << endl;
Tiempo t1(e1.getHorarioEntrada());
cout << t1.getHora() << ":" << t1.getMinuto() << ":" << t1.getSegundo() << endl; //Imprime cualquier cosa
Tiempo t2(e1.getHorarioSalida());
cout << t2.getHora() << ":" << t2.getMinuto() << ":" << t2.getSegundo() << endl; //Imprime cualquier cosa
return 0;
}
using namespace std;
//Clase Persona
class Persona{
public:
Persona(long,char*);
Persona(); //Necesario
long getDNI();
char* getNombre();
protected:
long DNI;
char *NomApe;
};
//Clase Tiempo
class Tiempo{
public:
Tiempo(int, int, int);
Tiempo(const Tiempo &);
Tiempo(); //Necesario
int getHora();
int getMinuto();
int getSegundo();
private:
int Hora;
int Minuto;
int Segundo;
};
//Clase Empleado
class Empleado: public Persona{
Tiempo HorarioEntrada;
Tiempo HorarioSalida;
public:
Empleado(long, char*, int, int, int, int, int, int);
Empleado();
Tiempo getHorarioEntrada();
Tiempo getHorarioSalida();
};
//Clase Persona
Persona::Persona(long _DNI, char *_NomApe){
DNI=_DNI;
NomApe=_NomApe;
}
Persona::Persona(){
//Necesario
}
long Persona::getDNI(){
return DNI;
}
char* Persona::getNombre(){
return NomApe;
}
//Clase Tiempo
Tiempo::Tiempo(int _Hora, int _Minuto, int _Segundo){
Hora=_Hora;
Minuto=_Minuto;
Segundo=_Segundo;
}
Tiempo::Tiempo(const Tiempo &t){ //Constructor copia
Hora=t.Hora;
Minuto=t.Minuto;
Segundo=t.Segundo;
}
Tiempo::Tiempo(){
//Necesario
}
int Tiempo::getHora(){
return Hora;
}
int Tiempo::getMinuto(){
return Minuto;
}
int Tiempo::getSegundo(){
return Segundo;
}
//Clase Empleado
Empleado::Empleado(long _DNI, char* _NomApe, int He, int Me, int Se, int Hs, int Ms, int Ss): Persona(_DNI, _NomApe){
Tiempo HorarioEntrada(He, Me, Se);
Tiempo HorarioSalida(Hs, Ms, Ss);
}
Empleado::Empleado(){
//Necesario
}
Tiempo Empleado::getHorarioEntrada(){
return HorarioEntrada;
}
Tiempo Empleado::getHorarioSalida(){
return HorarioSalida;
}
int main(){
//Prueba de clase Persona
Persona p1(37425755,"Juan Perez");
cout << p1.getDNI() << endl;
cout << p1.getNombre() << endl;
//Prueba de clase Empleado
Empleado e1(37425806,"Jonhy Fester",8,30,15,12,30,15);
cout << e1.getDNI() << endl;
cout << e1.getNombre() << endl;
Tiempo t1(e1.getHorarioEntrada());
cout << t1.getHora() << ":" << t1.getMinuto() << ":" << t1.getSegundo() << endl; //Imprime cualquier cosa
Tiempo t2(e1.getHorarioSalida());
cout << t2.getHora() << ":" << t2.getMinuto() << ":" << t2.getSegundo() << endl; //Imprime cualquier cosa
return 0;
}
Como verán (si lo compilan) a la hora de mostrar el horario de entrada y el horario de salida me tira cualquier valor. ¿Alguna idea de como arreglarlo? Gracias.





Autor


En línea

