elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda sobre el tema de Herencia en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre el tema de Herencia en c++  (Leído 2,063 veces)
maikelowen

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Duda sobre el tema de Herencia en c++
« en: 10 Abril 2014, 19:47 pm »

Hola,soy principiante en esto de la programación y llevo un un buen rato intentando ver donde tengo el fallo pero no hay manera... no consigo establecer la herencia entre las dos clases que he creado y que esta clase derivada ,en mi caso "Empleado" incluya los atributos de mi clase principal "Persona".
¿Podríais echarle un vistazo a  ver donde tengo el fallo? :huh:
-Utilizo netbeans- 
Un saludo y gracias de antemano.

/*
 * File:   main.cpp
 * Author: Owen10
 *
 * Created on 10 de abril de 2014, 18:44
 */

#include <cstdlib>
#include <iostream>

#include "Persona.h"
#include "Empleado.h"

using namespace std;

/*
 *
 */
int main(int argc, char** argv) {

    Persona p("Owen");
 
   
   
 
    Empleado e;
   
   cout<< e.nombre;
   
   
}



/*
 * File:   Empleado.cpp
 * Author: Owen10
 *
 * Created on 10 de abril de 2014, 18:50
 */

#include "Empleado.h"



Empleado::Empleado(const Empleado& orig) {
}

Empleado::~Empleado() {
}

Empleado::Empleado():Persona(nombre){
   


/*
 * File:   Empleado.h
 * Author: Owen10
 *
 * Created on 10 de abril de 2014, 18:50
 */

#ifndef EMPLEADO_H
#define   EMPLEADO_H
#include "Persona.h"

#include <iostream>
using namespace std;


class Empleado: public Persona{
   
public:
    Empleado();
    Empleado(const Empleado& orig);
    virtual ~Empleado();
   
    Empleado();
private:

   
   
};




/*
 * File:   Persona.cpp
 * Author: Owen10
 *
 * Created on 10 de abril de 2014, 18:45
 */

#include "Persona.h"


Persona::Persona(string Nombre){
    Nombre=nombre;
}


Persona::Persona(){
   
   
   
}

Persona::Persona(const Persona& orig) {
}

Persona::~Persona() {
}



/*
 * File:   Persona.h
 * Author: Owen10
 *
 * Created on 10 de abril de 2014, 18:45
 */

#ifndef PERSONA_H
#define   PERSONA_H

#include <iostream>
using namespace std;

class Persona {
public:
 
    Persona();
    Persona(const Persona& orig);
    virtual ~Persona();
    Persona(string Nombre);
   
   
 string nombre;
    int edad;
   
   
   
private:
   

};

#endif   /* PERSONA_H */


En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Duda sobre el tema de Herencia en c++
« Respuesta #1 en: 10 Abril 2014, 21:16 pm »

Bueno no es que sea un fiera en herencia pero intente arreglar lo que vi... y son unos cuantos errores.
Paso los archivos para que veas.
Tienes que crear un proyecto en codeblocks por ejemplo para que te compile correctamente.

Código
  1. /*
  2.  * File:   Persona.h
  3.  * Author: Owen10
  4.  *
  5.  * Created on 10 de abril de 2014, 18:45
  6.  */
  7.  
  8. #ifndef PERSONA_H
  9. #define PERSONA_H
  10.  
  11. #include <iostream>
  12. using namespace std;
  13.  
  14. class Persona {
  15. public:
  16.  
  17. Persona();
  18. virtual ~Persona();
  19. Persona ( const Persona & orig );
  20. Persona ( string unNombre );
  21.  
  22.  
  23. string suNombre;
  24. int suEdad;
  25.  
  26. private:
  27.  
  28.  
  29. };
  30. #endif   /* PERSONA_H */
  31.  

Código
  1. /*
  2.  * File:   Empleado.h
  3.  * Author: Owen10
  4.  *
  5.  * Created on 10 de abril de 2014, 18:50
  6.  */
  7.  
  8. #ifndef EMPLEADO_H
  9. #define EMPLEADO_H
  10. #include "Persona.h"
  11.  
  12. #include <iostream>
  13. using namespace std;
  14.  
  15.  
  16. class Empleado: public Persona {
  17.  
  18. public:
  19. Empleado();
  20.        Empleado( string unNombre );
  21. Empleado ( const Empleado & orig );
  22. virtual ~Empleado();
  23.  
  24. private:
  25.  
  26. };
  27. #endif /* EMPLEADO_H */
  28.  

Código
  1. /*
  2.  * File:   Persona.cpp
  3.  * Author: Owen10
  4.  *
  5.  * Created on 10 de abril de 2014, 18:45
  6.  */
  7.  
  8. #include "Persona.h"
  9.  
  10. Persona::Persona() {}
  11.  
  12. Persona::Persona ( string unNombre ) { suNombre = unNombre; }
  13.  
  14. Persona::Persona ( const Persona & orig ) {}
  15.  
  16. Persona::~Persona() {}
  17.  

Código
  1. /*
  2.  * File:   Empleado.cpp
  3.  * Author: Owen10
  4.  *
  5.  * Created on 10 de abril de 2014, 18:50
  6.  */
  7.  
  8. #include "Empleado.h"
  9.  
  10. Empleado::Empleado( string unNombre ) : Persona ( unNombre ) {}
  11. Empleado::Empleado ( const Empleado & orig ) {}
  12. Empleado::~Empleado() {}
  13.  

Código
  1. /*
  2.  * File:   main.cpp
  3.  * Author: Owen10
  4.  *
  5.  * Created on 10 de abril de 2014, 18:44
  6.  */
  7.  
  8. #include <cstdlib>
  9. #include <iostream>
  10.  
  11. #include "Persona.h"
  12. #include "Empleado.h"
  13.  
  14. using namespace std;
  15.  
  16. /*
  17.  *
  18.  */
  19. int main ( int argc, char ** argv ) {
  20. Empleado e("romoardo");
  21. cout << e.suNombre;
  22. }
  23.  

Lo errores había de todo los tipos XDD
Faltaba algunos cierre de llaves también.

Compara el código con el tuyo y ya veras que errores hay.
Si tienes duda pues sigue preguntando.

La herencia ya funciona, como ves he creado un objeto tipo Empleado y le asigno un nombre. Si vas a la clase veras que no tiene la variable miembro suNombre, la recibe de la clase persona ;)
Espero que te compile bien :D
Si necesitas el proyecto te lo subo también pero creo que no hace falta, solo creas un proyecto vació agregas todos los archivos y después marque que compile solo los .cpp
Suerte. :D

Ahora intenta pasar como privado las variables de la clase persona. Las variables no deben ser publicas, como minimo protected


« Última modificación: 10 Abril 2014, 21:20 pm por vangodp » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Duda sobre el tema de Herencia en c++
« Respuesta #2 en: 10 Abril 2014, 21:21 pm »

No es necesario que pongas el constructor copia/destructor si no lo vas a implementar. Ya lo hace el compilador por ti.

De hecho aqui es contraproducente. Prueba a hacer una copia del objeto, a ver si lo copia bien ^^
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
maikelowen

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Duda sobre el tema de Herencia en c++
« Respuesta #3 en: 10 Abril 2014, 21:51 pm »

muchas gracias !  ;-) ya lo he entendido,aparte lo he empezado a hacer de cero y me ha salido.

Un saludo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pregunta sobre herencia en SmallTalk
Programación General
astinx 0 2,635 Último mensaje 20 Febrero 2012, 22:32 pm
por astinx
Pregunta sobre herencia y polimorfismo
Programación C/C++
Rodrigosolari 2 2,455 Último mensaje 6 Mayo 2012, 08:51 am
por Rodrigosolari
Duda sobre herencia en C++
Programación C/C++
NekoOs 4 2,452 Último mensaje 18 Septiembre 2012, 00:42 am
por NekoOs
Duda sobre el tema de menus, sección programacion C++.
Programación C/C++
minari02 2 2,456 Último mensaje 23 Diciembre 2013, 01:01 am
por minari02
Duda, sobre tema en el foro
Hacking
c3r0x 1 2,124 Último mensaje 23 Febrero 2014, 15:12 pm
por .:UND3R:.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines