Declaración de clases

Una clase puede ser definida de tres formas:

 

1ª) Mediante la palabra struct: por defecto todos los miembros son públicos.

 

struct cuadrado

{

double CalcularArea ( );

void Leerdatos (double Lado1, double Lado2);

private :

double Lado1;

double Lado2;

};

 

2ª) Mediante la palabra union: por defecto los miembros son públicos y los datos comparten espacio de memoria.

 

union Nombre_Persona

{

void MuestraNombre ( );

void MuestraApellido ( );

private :

char Nombre_Completo [30];

char Nombre_y_Apellido [2] [15];

};

 

 

3ª) Mediante la palabra class: los miembros son privados por defecto. Es la forma usual de declarar clases.

 

class vehiculo

{

int Numero_Ruedas;

int Numero_Ocupantes;

public :

void MostrarNumeroOcupantes ( );

}

 

Para crear un objeto en C++ primero debe definirse su forma general usando la palabra reservada class. Una clase es sintácticamente similar a una estructura.

 

Ejemplo: esta clase define un tipo llamado cola, que se usa para crear un objeto cola:

 

// esto crea la clase cola

class cola {

int c[100];

int ppio, fin;

public :

void ini ( );

void meter (int i);

int sacar ( );

}

 

Se puede crear un objeto de este tipo usando el nombre de la clase. Por ejemplo, creamos un objeto llamado intcola del tipo cola:

 

cola intcola;

 

También se pueden crear variables cuando se está definiendo una clase, poniendo los nombres de las variables después de la llave de cierre, igual que en una estructura.

 

Forma general de una declaración de clase:

 

class nombre_clase {

datos y funciones privados;

public :

datos y funciones publicos;

} lista de nombres de objetos;

 

Las funciones deben ser declaradas en el interior de la estructura class, mientras que su código se define normalmente fuera de ella. A la hora de definir el código de una función miembro de una clase se le debe indicar al compilador a qué clase pertenece la función, esto se indica precediendo al nombre de la función el nombre de la clase y un par de signos de dos puntos "::". Es necesario ya que en C++ está permitido que clases distintas declaren funciones distintas pero con el mismo nombre.

 

Ejemplo:

 

void cola::meter (int i)

{

if (ppio=100) {

cout << "la cola está llena";

return;

}

ppio++;

c[ppio]=i;

}

 

A :: se le denomina operador de resolución de ámbito.

 

Para llamar a una función de una clase desde una parte del programa que no sea parte de la propia clase, se debe utilizar el nombre del objeto y el operador punto "."

 

Ejemplo:

 

cola a,b;

a.ini ( );