Clases y estructuras (solo C++)
La clase C++ es una extensión de la estructura de lenguaje C. Puesto que la única diferencia entre una estructura y una clase es que los miembros de la estructura tienen acceso público de forma predeterminada y los miembros de clase tienen acceso privado de forma predeterminada, puede utilizar las palabras clave class o struct para definir clases equivalentes.
Por ejemplo, en el fragmento de código siguiente, la clase X es equivalente a la estructura Y:
class X {
// private by default
int a;
public:
// public member function
int f() { return a = 5; };
};
struct Y {
// public by default
int f() { return a = 5; };
private:
// private data member
int a;
};
Si define una estructura y, a continuación, declara un objeto de esa estructura utilizando la palabra clave class, los miembros del objeto siguen siendo públicos de forma predeterminada. En el ejemplo siguiente, main() tiene acceso a los miembros de obj_X aunque obj_X se haya declarado utilizando un especificador de tipo elaborado que utiliza la clave de clase class:
#include <iostream>
using namespace std;
struct X {
int a;
int b;
};
class X obj_X;
int main() {
obj_X.a = 0;
obj_X.b = 1;
cout << "Here are a and b: " << obj_X.a << " " << obj_X.b << endl;
}
Here are a and b: 0 1