[C con Clase] tengo dudas con clases C++

Carlos Lopez Gutierrez avatar2040 en yahoo.es
Jue Ene 3 02:52:05 CET 2008


Umm bueno tu codigo esta un poco dificil de leer pero respecto a tu pregunta sobre la diferencia entre estructura y objeto:

Una estructura es basícamente un grupo de variables agrupadas a un nombre por ejemplo

struct persona{
   char nombre[30];
   int edad;
}

Ahora, los objetos ademas de contener un conjunto de variables, contienen metodos, es decir funciones asociadas al nombre del objeto. En C tienes que desarrollar tus metodos para que trabajen con tu estructura por separado. Un ejemplo de objeto en c++:

class Persona {
  private:
    char *nombre;
    int edad;
  public:
    
    Persona(char *n, int age){
        //Codigo del constructor 
    }

    void getName(){
      //Codigo para obtener nombre
    }
    
    void setName(){
      //Codigo para Asignar un nuevo nombre 
    }
};

A las variables de un objeto se le llaman atributos y a sus funciones metodos. Es una buena costumbre de programacion que los atributos sean privados al objeto, es decir que desde un programa no se puedan acceder directamente, sino mediante el uso de metodos como el de obtener nombre...

Además un objeto tiene la propiedad de Herencia, es decir que un objeto puede adquirir atributos y metodos a partir de otro.

Otros conceptos importantes son el uso de constructores, que es el método principal por el cual se le asignan valores a todos los atributos (o los que sean necesarios) y el de destructor, es decir liberar a la memoria del espacio ocupado por nuestro objeto...

Algo que no se puede hacer no solamente con los metodos de los objetos sino con cualquier funcion es el polimorfismo, es decir, que dos funciones tengan el mismo nombre pero con diferentes parametros, tambien llamado sobrecarga de funciones, por ejemplo:

int suma(int a, int b){
  return a + b;
}

int suma (float a, float b){
  return a + b; 
}

Esto provocaria un error en c, pero no en c++ y sirve mucho para los constructores...

Bueno espero haber aclarado un poco las cosas y disculpen si hay algun pequeño error por ahi, No creas que las estructuras son menos potentes que los objetos. Un buen ejemplo de estructuras bien diseñadas son las libreriras GTK en GNU/Linux, las cuales son un conjunto de utilidades para programar graficos...

Saludos y feliz año


Más información sobre la lista de distribución Cconclase