Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - vangodp

#121
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 (cpp) [Seleccionar]

/*
* 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();
virtual ~Persona();
Persona ( const Persona & orig );
Persona ( string unNombre );


string suNombre;
int suEdad;

private:


};
#endif   /* PERSONA_H */


Código (cpp) [Seleccionar]

/*
* 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( string unNombre );
Empleado ( const Empleado & orig );
virtual ~Empleado();

private:

};
#endif /* EMPLEADO_H */


Código (cpp) [Seleccionar]

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

#include "Persona.h"

Persona::Persona() {}

Persona::Persona ( string unNombre ) { suNombre = unNombre; }

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

Persona::~Persona() {}


Código (cpp) [Seleccionar]

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

#include "Empleado.h"

Empleado::Empleado( string unNombre ) : Persona ( unNombre ) {}
Empleado::Empleado ( const Empleado & orig ) {}
Empleado::~Empleado() {}


Código (cpp) [Seleccionar]

/*
* 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 ) {
Empleado e("romoardo");
cout << e.suNombre;
}


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
#122
Programación C/C++ / Re: Ayuda programar
7 Abril 2014, 14:37 PM
¿Que quieres aprender? ¿C o C++?
Por que de eso va este foro :)
Pero hay muchos otros lenguajes.
¿Para que lo quieres en concreto? Aplicaciones de escritorio, aplicaciones móviles, juegos, paginas web....
Si es para C++ por aquí empece yo: http://www.minidosis.org/#/
Complementa lo con algunos pdfs sobre c++, de preferencia que sean para iniciante.
En este mismo foro hay una lista de libros en PDF que te pueden servir. Si no use google sam ^^
Suerte!
Cualquier cosa aquí están los mejores  ;-)
Esta pagina que te pase es oro =)
#123
Cita de: ivancea96 en  3 Abril 2014, 22:13 PM
Creo que se explicó bastante bien, Vangodp. Si lo tuyo son ganas de... e.e
No tengo ni idea a que te refieres con "ganas de...." Si me explicas mejor puedo contestarte como sea debido.
CitarHola, les pido una ayuda sobre un código que hice para convertir un numero entero a string. El código puede trabajar tanto con números negativos como positivos(aunque solo lo tengo implementado para números positivos). El tema es que no me arroja nada por la salida estandar..HELP! (soy aprendiz en C++)
No se tu seras muy inteligente y tal pero no he sabido entender lo que quería el compañero.
Pero si que veo tu intención. ¿Dime cual es el problema? :huh:
Si crees que te lo he dicho a ti por que mi mensaje va después del tuyo pues lo siento pero no iba contigo.  :rolleyes:
#124
ves si te explica bien te entierran en respuestas jeje :laugh:
Este es el mejor foro ^^  ;-)
#125
a que te refieres con convertir a un string?? ¿¿100 = "cien"?? :huh:
#126
Programación C/C++ / Re: bucle con char
1 Abril 2014, 20:46 PM
A lo mejor te interesa el while cin  ;D
https://www.youtube.com/watch?v=ZYZQakNhkgM
#127
Eres una enciclopedia ambulante =D
Que buenos los ejemplos. Sencilos lo justo para pillar el tema, ni los que enseñan lo hacen así, te lo enseñan 40 códigos y terminas por no pillar ninguno jeje.
Tan buenos son que me hacen ver que me salte alguna aula XDDD
Código (cpp) [Seleccionar]
Base& operator=( const Base& otro )
      { std::cout << "Operador asignacion BASE" << std::endl; }

No tengo ni idea sobre esto... jeje
voy a tener que ponerme al día con algunas cosas... me parece que no tengo ni idea sobre algunos temas y mejor los repaso otra vez por que se ve que tengo carencias.
Por lo demás solo puedo decir gracias y mas mil gracias =)
Aprender C++por cuenta cuesta mucho -_-'
Si no soys vosotros... pffff
No me olvidare la ayuda.Graciasssss  ;-) ;-) ;-)

Doy el tema por terminado.

En la linea 42 del ultimo ejercicio:
  Base* base2 = new Base( *derivada );
Seria esto:
Base * base2 = new Base ( *base );
¿no?
por que "derivada" no esta declarada y Derivada no sera :D
#128
Muchas gracias compañero, mas claro imposible.
Voy a estudiar el código con lupa
¡Que artista eres!  ;-)
Suerte (y)

Yes!! creo que lo pille ^^ jeje Gracias eferion. Entre tu explicación y el video creo que le pille el punto.
Con lo de la copia te refieres a eso "lo del recorte"....¿verdad?
A ver si me equivoco:
Como explicas en el argumento de la función se espera un objeto tipo base.Se "recorta" lo la parte derivada ¿Es eso? -_-'.
¿Eso es lo que hace el constructor de copia?Desecha todo lo que no esta esperando con la copia?

Lo del constructor de copia me lo tengo crudo.Voy a tener que repasar por que no lo capto :-(
¿Algún consejo?

Por cierto se me activo 2 cosas que no se que son :s una v y una x al lado de modificar mensaje.
¿Que es, alguien sabe??Vaya que la apriete y borre todo el post y me come con papas eternal XDD
#129
Cita de: eferion en 30 Marzo 2014, 20:14 PM
En el caso de que pases la clase por valor se llama al constructor copia... y claro, el compilador no es tan listo y llama al constructor copia de la clase base. En este caso la clase base tiene su propia función y es la que acaba siendo llamada.
Gracias...Un poco mas claro. Pero aun tengo una duda..¿Entonces realmente esa función no pertenece a la clase derivada cuando paso por valor sino a la clase base?
El tema del polimorfismo me va quitar de vivir XDD
Gracias mas una vez...
#130
Bueno Gracias de antemano si alguien sabe algo sobre eso.
El caso es que viendo un vídeo en youtube me di con una cosa que denominada slicyng según el dueño del vídeo(Outkast) es algo como recorte de funciones.
https://www.youtube.com/watch?v=_qS9YfxxdDw
Hice un código sencillo ya que como novato para mi es mejor así :D
Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;

class base {
   public:
       base(){}
       ~base(){}
       virtual void comunicar() { cout << "BASE!" << endl; }        
};
class derivada: public base {
   public:
       derivada() {}
       ~derivada(){}
       void comunicar() { cout << "DERIVADA!" << endl; }  
};                                                        
void punte( base* c ){c->comunicar();}
void refer( base &c ){c.comunicar();}
void valor( base c  ){c.comunicar();}                        

int main (){      
   derivada *miclase = new derivada;    
   punte(  miclase );     //puntero
   refer( *miclase );    //referencia
   valor( *miclase );   //valor
   
   delete miclase;
   miclase = NULL;                      
   cin.ignore();
   return 0;
}


Según el o lo que entendí..a ver como lo explico rápido: En las funciones punte(), refer() y valor(), paso a ellas sus respectivos valores(punteros, referencia y valor) de una función creada en el heap llamada miclase que es la clase derivada.

¿Por que cuando llamo a las funciones, esas funciones esperan la clase base, sin embargo les paso la derivada y obtengo resultados de esta clase? Exceptuando cuando lo paso por valor ¡WTF!
O sea que puedo acceder a las clases heredadas desde las clases base si hago con puntero o referencia. :/
Menudo raleo me esta haciendo eso jejej
¿Eso es por la tal tabla virtual?
En fin a ver si es eso cierto por que ya tengo una stormbrain con eso de acceder por todas las partes a las clases jeje
Y eso que ha dicho que el gordo aun esta por venir XDD
Saludos ^^
Y gracias de antemano si alguien me puede explicar eso de forma mas sencilla. ;-)