Código C++:
Ver original#include<iostream>
#include<string>
#include<windows.h>
using namespace std;
class ClasePrueba {
private:
string nombre;
int edad;
public:
ClasePrueba ( string name, int age ) {
nombre = name;
edad = age;
}
void establecerNombre ( string name ) {
nombre = name;
}
string obtenerNombre() {
return nombre;
}
};
class ClasePrueba2 : public ClasePrueba {
private:
string apodo;
public:
ClasePrueba2 ( string name, int age , string nick ): ClasePrueba( name, age ){
apodo = nick;
}
void establecerApodo ( string nick ) {
apodo = nick;
}
string obtenerApodo() {
return apodo;
}
};
int main() {
cin.ignore();
return 0;
}
Mire aqui para una lectura mas comprensiva:
http://c.conclase.net/curso/?cap=036b
Te dejo un ejemplo para que vea los constructores destructores y como se llaman de forma por defecto y con parámetros.
Código C++:
Ver original#include<iostream>
#include<string>
#include<windows.h>
using namespace std;
// Clase base:
class Persona {
public:
//Constructor por defecto
Persona() { suNombre = "paco: "; cout << suNombre << " Constructor(defecto) Persona llamado" << endl; } // si se llama el constructor por defecto es el de paco
//Constructor con parametros
Persona( string unNombre ) {
suNombre = unNombre;
cout << suNombre << ": Llamado el constructor con parametros de Persona" << endl;
}
//Destructor por defecto
~Persona() { cout << suNombre << ": Destructor(defecto) Persona llamado" << endl; }
//voy hacer los datos miembros publicos para no liar mucho cacao XD
//private:
string suNombre;
};
// Clase derivada de persona y base de Vendedor:
class Empleado : public Persona {
public:
//Constructor por defecto
Empleado() { suNombre = "paco: "; cout << suNombre << " Constructor(defecto) Empleado llamado" << endl; } // si se llama el constructor por defecto es el de paco
//Constructor con parametros
Empleado( float unSueldo, string unNombre )
: Persona( unNombre )
{
cout << suNombre << ": Llamado el constructor con parametros de Empleado" << endl;
suSueldo = unSueldo;
}
//Destructor por defecto
~Empleado() { cout << suNombre << ": Destructor(defecto) Empleado llamado" << endl; }
//voy hacer los datos miembros publicos para no liar mucho cacao XD
//private:
float suSueldo;
};
//clase derivada de las anteriores
class Vendedor : public Empleado {
public:
//Constructor por defecto
Vendedor() { suNombre = "paco: "; cout << suNombre << " Constructor(defecto) Vendedor llamado" << endl; } // si se llama el constructor por defecto es el de paco
//Constructor con parametros
Vendedor( int unCodigo, float unSueldo, string unNombre )
: Empleado ( unSueldo, unNombre )
{
cout << suNombre << ": Llamado el constructor con parametros de Empleado" << endl;
suCodigo = unCodigo;
}
//Destructor por defecto
~Vendedor() { cout << suNombre << ": Destructor(defecto) Vendedor llamado" << endl; }
//voy hacer los datos miembros publicos para no liar mucho cacao XD
//private:
int suCodigo;
};
int main() {
Vendedor paco; //prueba el constructor por defecto
cout << endl;
Vendedor pepe( 22333, 700.00, "Jose Perez" );
cout << endl;
cout << "Vemos datos de paco:" << endl;
cout << "-Nombre: " << pepe.suNombre << endl; //los llamo directamente por que son publicos los datos, si no deberia hacer funciones para que me retorne esos datos con geters
cout << "-Sueldo: " << pepe.suSueldo << endl; //los llamo directamente por que son publicos los datos, si no deberia hacer funciones para que me retorne esos datos con geters
cout << "-Codigo: " << pepe.suCodigo << endl; //los llamo directamente por que son publicos los datos, si no deberia hacer funciones para que me retorne esos datos con geters
cout << endl;
cout << "$Pulse un boton para seguir..." << endl;
cout << "Ahora se llama destructores(por defecto) en orden inversa a la que han sidos creados" << endl;
cin.ignore();
return 0;
}
Espero que sirva de ayuda =)