jueves, 11 de agosto de 2011

Programación en C++/ Estructura I .."struct vs. class "

struct vs. class

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;
{

 

1 comentario:

  1. Este post extendió mi conocimiento en estructuras.
    Es un tema y un post bastante sencillo pero util.
    Gracias

    ResponderEliminar