La idea de una estructura es agrupar una colección de variables en un solo contenedor. Por ejemplo, si tienes tres coordenadas
int x;
int y;
int z;
es posible que desee verlos como una unidad de datos y agruparlos:
struct point
{
int x;
int y;
int z;
};
Puede ver esto como una forma de modularizar sus datos. Ahora puede definir variables que contengan los tres valores en una unidad:
struct point p1, p2;
En la programación de procedimientos, tiene procedimientos o funciones que manipulan datos y, en particular, estructuras, p. Ej.
void shiftX(struct point *p, int offset);
Puede llamar a la función en una estructura pasándola como argumento:
shiftX(&p1, -10);
El paso de las estructuras a las clases es decir que los procedimientos / funciones deben agruparse junto con los datos en unidades: como las estructuras clasifican las entidades que tienen la misma estructura, las clases clasifican las entidades que tienen la misma estructura y operaciones.
Entonces ahora puedes escribir:
class Point
{
public:
void shiftX(int offset);
int x;
int y;
int z;
};
y entonces:
Point p;
...
p.shiftX(-10);
De esta forma, es más fácil agrupar operaciones que funcionan en el mismo tipo de datos. Por ejemplo, puede agrupar todas las operaciones que actúan sobre puntos en la definición de clase, en lugar de dispersarlas sobre su código como funciones que tienen uno o más parámetros de tipo punto.
Además, puede refinar tanto la estructura como el comportamiento mediante el uso de la herencia.
Resumiendo: las estructuras son un concepto que permite organizar / modularizar datos. Las clases permiten organizar / modularizar datos y operaciones.
struct
palabra clave fuera opcional cuando se usa la estructura.