Tengo una duda Miren que interesante
Que es mejor las struct de C o las clases (class) usadas en C++, Porque me parece que las clases son mucho mejores, aunque todo lo que pregunto aqui en el foro acerca de las clases de C++ me recomiendan las struct. denme una explicacion que entienda
Depende de para qué quieras usar los datos.
Las clases soportan también definicion de métodos, que son por decirlo de alguna forma funciones.
Las clases son mas potentes pero mas complicadas de usar.
Para cosas sencillas es mejor usar las structs, porque requieren de menos procesamiento y son mas faciles de manejar. Aunque menos potentes hacen muy bien su función, que es la de guardar en un mismo conjunto varias variables de distintos tipos.
Una clase es algo más, porque puede guardar tanto variables (llamadas propiedades) como funciones (llamadas métodos), una clase puede tener incluso propiedades que sean structs u otras clases.
Además una clase se asemea a un typedef struct, más que a un struct. Pues necesita crearse un objeto de esa clase para usarse.
De alguna forma se podrÃa asemejar clase como tipo de dato y objeto como variable. un ejemplo serÃa int a;
esto crea una variable a de tipo entero. pues si int fuera una clase entonces a serÃa un objeto.
Es similar pero no es lo mismo.
La mayor diferencia en usar clases u typedef structs reside en si te piden que hagas código C o código C++, normalmente en C++ usan clases porque siempre se les ponen métodos que son funciones para poder manejar las propiedades de la clase y sólo a traves de esos métodos se podrán cambiar o manipular la información de un objeto de esa clase.
No si si te ha quedado claro, sino que otro lo intente.
Las clases soportan también definicion de métodos, que son por decirlo de alguna forma funciones.
Las clases son mas potentes pero mas complicadas de usar.
Para cosas sencillas es mejor usar las structs, porque requieren de menos procesamiento y son mas faciles de manejar. Aunque menos potentes hacen muy bien su función, que es la de guardar en un mismo conjunto varias variables de distintos tipos.
Una clase es algo más, porque puede guardar tanto variables (llamadas propiedades) como funciones (llamadas métodos), una clase puede tener incluso propiedades que sean structs u otras clases.
Además una clase se asemea a un typedef struct, más que a un struct. Pues necesita crearse un objeto de esa clase para usarse.
De alguna forma se podrÃa asemejar clase como tipo de dato y objeto como variable. un ejemplo serÃa int a;
esto crea una variable a de tipo entero. pues si int fuera una clase entonces a serÃa un objeto.
Es similar pero no es lo mismo.
La mayor diferencia en usar clases u typedef structs reside en si te piden que hagas código C o código C++, normalmente en C++ usan clases porque siempre se les ponen métodos que son funciones para poder manejar las propiedades de la clase y sólo a traves de esos métodos se podrán cambiar o manipular la información de un objeto de esa clase.
No si si te ha quedado claro, sino que otro lo intente.
Bueno, mi opinión es bien otra...
En C no hay clases, asà que la diferencia entre una struct y una class sólo tiene sentido en C++, ¿de acuerdo?.
Bien, la única diferencia entre una struct y una class es que para la primera sus miembros, por defecto, son públicos; mientras que para las class, por defecto, sus miembros son privados. Y esa es la única diferencia.
Asà que no hay nada más de una que no pueda decirse de la otra. Una struct en C++ no es lo mismo que una struct en C. Por ejemplo:
struct estructura {
public:
estructura(); // constructor
~estructura(); // destructor
char LeeDato(void); // función miembro
void PoneDato(char a); // otra
private:
char dato; // miembro privado
};
Como ves, una struct en C++ no se diferencia de una class en nada más notable que en su nombre.
Entonces no puede decirse que una es mejor que la otra, en ningún sentido, son perfectamente equivalentes para cualquier uso.
Ahora, por una cuestión de costumbre, es más común usar la palabra struct para una clase que no tiene funciones miembros sino sólo datos públicos.
Asà que si te han dicho que una es mejor que otra, olvÃdalo.
Alejandro
En C no hay clases, asà que la diferencia entre una struct y una class sólo tiene sentido en C++, ¿de acuerdo?.
Bien, la única diferencia entre una struct y una class es que para la primera sus miembros, por defecto, son públicos; mientras que para las class, por defecto, sus miembros son privados. Y esa es la única diferencia.
Asà que no hay nada más de una que no pueda decirse de la otra. Una struct en C++ no es lo mismo que una struct en C. Por ejemplo:
struct estructura {
public:
estructura(); // constructor
~estructura(); // destructor
char LeeDato(void); // función miembro
void PoneDato(char a); // otra
private:
char dato; // miembro privado
};
Como ves, una struct en C++ no se diferencia de una class en nada más notable que en su nombre.
Entonces no puede decirse que una es mejor que la otra, en ningún sentido, son perfectamente equivalentes para cualquier uso.
Ahora, por una cuestión de costumbre, es más común usar la palabra struct para una clase que no tiene funciones miembros sino sólo datos públicos.
Asà que si te han dicho que una es mejor que otra, olvÃdalo.
Alejandro
