04.06.2015 Views

Manual básico de Programación en C++

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3. PRIMERAS EXTENSIONES ORIENTADAS A OBJETOS<br />

3.1. COMO PONER EN PRACTICA UN TDA CON UNA CLASE<br />

Las clases permit<strong>en</strong> que el programador mo<strong>de</strong>le objetos que ti<strong>en</strong><strong>en</strong> atributos<br />

(miembros <strong>de</strong> datos) y comportami<strong>en</strong>tos u operaciones (funciones miembro). Los tipos<br />

conti<strong>en</strong><strong>en</strong> miembros <strong>de</strong> datos y funciones miembro, y son <strong>de</strong>finidos mediante la palabra<br />

reservada class.<br />

El nombre <strong>de</strong> la clase (una vez <strong>de</strong>finida) pue<strong>de</strong> ser utilizado para <strong>de</strong>clarar objetos <strong>de</strong><br />

dicha clase.<br />

Ejemplo:<br />

class Punto // Declaración <strong>de</strong> la clase Punto.<br />

{<br />

int _x, _y; // Coor<strong>de</strong>nadas <strong>de</strong>l punto.<br />

public: // Principio <strong>de</strong> la <strong>de</strong>claración <strong>de</strong> interface.<br />

void setX (const int val);<br />

void setY (const int val);<br />

int getX( ) {return _x;}<br />

int getY( ) {return _y;}<br />

};<br />

Punto apunto; // Definición <strong>de</strong>l objeto apunto.<br />

La <strong>de</strong>finición <strong>de</strong> una clase comi<strong>en</strong>za con la palabra reservada class . El cuerpo <strong>de</strong> la<br />

<strong>de</strong>finición <strong>de</strong> clase se <strong>de</strong>limita mediante llaves. La <strong>de</strong>finición <strong>de</strong> clase termina con un<br />

punto y coma. En el cuerpo <strong>de</strong> la <strong>de</strong>finición exist<strong>en</strong> partes nuevas: la etiqueta public: y<br />

private: se conoc<strong>en</strong> como especificadores <strong>de</strong> acceso <strong>de</strong> miembro. Cualquier miembro<br />

<strong>de</strong> datos o función miembro <strong>de</strong>clarado <strong>de</strong>spués <strong>de</strong>l especificador <strong>de</strong> acceso <strong>de</strong> miembro<br />

public: (y antes <strong>de</strong>l sigui<strong>en</strong>te especificador <strong>de</strong> acceso <strong>de</strong> miembro) es accesible,<br />

siempre que el programa t<strong>en</strong>ga acceso a un objeto <strong>de</strong> la clase. Cualquier miembro <strong>de</strong><br />

datos o función miembro <strong>de</strong>clarada <strong>de</strong>spués <strong>de</strong>l especificador <strong>de</strong> acceso <strong>de</strong> miembro<br />

private: (y hasta el sigui<strong>en</strong>te especificador <strong>de</strong> acceso <strong>de</strong> miembro) sólo es accesible a<br />

las funciones miembro <strong>de</strong> la clase.<br />

Estos especificadores pue<strong>de</strong>n aparecer varias veces <strong>en</strong> una <strong>de</strong>finición <strong>de</strong> clase. Por<br />

<strong>de</strong>fecto, los elem<strong>en</strong>tos <strong>de</strong> las clases son privados ( private: ).<br />

Por lo regular, los miembros <strong>de</strong> datos aparec<strong>en</strong> listados <strong>en</strong> la porción private: <strong>de</strong> una<br />

clase, y normalm<strong>en</strong>te, las funciones <strong>de</strong> miembro aparec<strong>en</strong> listadas <strong>en</strong> la porción public:,<br />

aunque pue<strong>de</strong> darse el caso contrario.<br />

Los miembros <strong>de</strong> datos <strong>de</strong> una clase no pue<strong>de</strong>n ser inicializados don<strong>de</strong> son <strong>de</strong>clarados<br />

<strong>en</strong> el cuerpo <strong>de</strong> la clase. Deberán ser inicializados por el constructor <strong>de</strong> la clase, o las<br />

funciones ''set'' les podrán asignar valores.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!