Esta sección no pretende enseñar que el uso de la palabra struct es lo mismo que usar la palabra class. Sin embargo, como ya se mencionó en una sección anterior a esta, las estructuras (struct) pueden extenderse de otras y heredar todos los miembros de la estructura base. Otro punto que se demostrará aqui es el hecho de que las estructuras en C++ (no en C estándar) pueden contener miembros funciones. Por supuesto, el compilador trata a una struct de una forma diferente que a una class. Entre algunas de las diferencias que se pueden mencionar respecto a las estructuras contra las clases son:
§ Los miembros de una struct son públicos por default, mientras que los miembros de una class son privados por default.
§ Los parámetros-argumentos struct se pasan normalmente por copia, los parámetros-argumentos class se pasan normalmente por referencia.
// Este programa ha sido probado en Dev-C++ y Borland C++
#include <iostream>
usingnamespace std;
// estructura tipo clase base
struct Par {
int a, b;
// constructor base
Par(){ a = b =0;}
// destructor base
~Par(){cout<<"hecho..."<< endl;}
void setA(int n){ a = n;}
void setB(int n){ b = n;}
void mostrar(){
cout<<"a = "<< a <<", b = "<< b <<"; suma = "<< a+b << endl;
}
};
// estructura tipo clase hija
// ParHijo es una extensión de Par, y por lo tanto hereda los miembros de Par
struct ParHijo : Par {
// constructor del hijo
ParHijo(int a, int b){
this->a = a;
this->b = b;
}
};
// prueba
void test00(){
ParHijo p1(100, 200);// p1 es instancia de ParHijo
p1.mostrar();// se envía mensaje al método mostrar() de p1
}
// funcion principal
int main()
{
test00();
cin.get();
return0;
{
Este post extendió mi conocimiento en estructuras.
ResponderEliminarEs un tema y un post bastante sencillo pero util.
Gracias