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;
}
A continuación se muestra la salida del ejemplo anterior:
Here are a and b: 0 1
Información relacionada