Documente Academic
Documente Profesional
Documente Cultură
Contenido
Esta leccin abarca los siguientes temas:
Estructura y declaracin de una clase
Implementacin de Atributos y mtodos
Modificadores de Acceso a mtodos y atributos
El constructor y destructor
Declaracin de objetos
Creacin de objetos de forma dinmica
Uso de objetos
Manipulando Atributos
Invocando mtodos
El puntero this
Arreglos de Objetos
Mtodos Setter y Getter
En este archivo, el
primer paso es
colocar la directiva
del PreProcesador
Palabra reservada
para definir una clase.
Por lo general un
archivo contiene una
sola clase, y el nombre
de ste debe coincidir
con el nombre de la
clase.
Los modificadores
definen el acceso a
los atributos y a los
mtodos.
Modificadores de acceso
Cuando se crea una nueva clase en C++, se puede especificar el nivel
de acceso que se quiere para los atributos de las instancias y los
mtodos definidos en la clase por medio de los siguientes
modificadores de acceso:
public
Cualquier clase puede acceder a las propiedades y mtodos
pblicos.
protected
Slo las clases derivadas y aquellas situadas o no en el mismo
paquete, pueden acceder a las propiedades y mtodos protegidos.
private
Las variables y mtodos privados slo pueden ser accedidos desde
dentro de la clase.
Si en la definicin de la clase se obvia el modificador de
acceso, la clase lo asume como privado (private).
Modificadores de acceso
La siguiente tabla resume los modificadores de acceso en C++
Visibilidad
public
protected
private
Si
Si
Si
Si
No
No
Si
Si
No
Implementacin de mtodos
Existen dos formas para implementar (escribir el cdigo) los mtodos
de una clase en C++:
En lnea, se refiere cuando la implementacin se hace dentro de
la clase.
Fuera de lnea, cuando se codifica la implementacin del
mtodo fuera de la clase, puede ser en otro archivo. Esta forma
se usa cuando el cdigo del mtodo es muy grande, entonces
slo se coloca el prototipo de la funcin dentro del bloque de
declaracin de la clase.
Implementacin de mtodos
Se definen de manera similar a cualquier otra funcin de Lenguaje C
pero, requiere incluir el operador de resolucin de mbito :: en la
definicin del mtodo.
Implementacin de mtodos
Mtodo definido En Lnea
Fuera de Lnea
Implementacin de mtodos
Continuando con el
ejemplo de la clase
Casa,
implementemos sus
mtodos.
En la mayora de los
casos en el archivo
de cabecera .h se
define la estructura
de la clase y el cdigo
de cada mtodo se
escribe en un archivo
que tenga el mismo
nombre de la clase
pero con extensin
.cpp
Instanciacin de objetos
Una vez que la clase ha sido implementada se pueden declarar
objetos: como variables locales de mtodos o como atributos de
otras clases, siguiendo las reglas de sintaxis de C++ para cada caso.
Ejemplo:
Casa miCasa;
Estudiante rafael;
Vehiculo tucson;
Instanciacin de objetos
Si se desea declarar un objeto de una clase que se encuentra en
otro archivo, por ejemplo, en el archivo main.cpp, se desea
declarar un objeto de la clase Casa, que se encuentra en el
archivo Casa.h
Es necesario incluir el archivo
de forma explcita, por medio
del nombre y usando la
directiva #include.
Manipulacin de atributos
Para que un objeto pueda usar sus caractersticas y mtodos, debe
establecer comunicacin con el mismo, de esta manera podr
cambiar el estado del objeto y/o realizar alguna accin. Estas operaciones
Los objetos proporcionan dos
formas de hacer esto:
1. Manipulando
los
atributos
(no
recomendable
desde
otras clases).
Para acceder a los atributos que
tienen los objetos se utiliza el .
acompaado del nombre del objeto:
nombreObjeto.nombreAtributo
Invocacin de mtodos
2. Invocando sus mtodos,
haciendo un pase de
mensajes.
Constructores
Es un mtodo con un propsito especfico que se ejecuta
automticamente cuando se crea un objeto de una clase.
Generalmente, un constructor se utiliza para inicializar los
atributos de una clase.
No retorna ningn valor (ni un void), pero si puede tomar los
parmetros que requiera.
Debe tener el mismo nombre de la clase.
Constructores
Declaracin de
constructores
Constructores
Constructores alternativos
paramtricos
En Memoria
Constructores
miCasa1
direccion =
numHabitaciones= 0
miCasa2
Uso del constructor
que recibe char[], int
direccion = Av Para
numHabitaciones= 4
miCasa3
direccion = Pirineo
numHabitaciones= 0
miCasa4
Uso del constructor
que recibe un int
direccion = null
numHabitaciones= 3
Operador
para
solicitar memoria
Constructor de la
clase a la cual
pertenece
el
objeto
Lista
de
argumentos que
necesita
el
constructor.
Se crea un objeto
Ejemplo:
estudiante con el
Estudiante *rafael = new Estudiante();
estado dado por
Vehiculo *tucson = new Vehiculo(Fiat, Palio, 2005, Rojo); los valores por
defecto que
Se crea un objeto cuyos
disponga el
valores de sus atributos estn
Programador de
bien definidos y dados por el
la Clase
usuario de la Clase
miCasa->cargarDatos();
cout<<La direccion es: <<miCasa->direccin<<endl;
El puntero this
Uno de los usos que se le da, es para resolver ambigedad entre
argumentos y atributos.
Error de ambigedad, se
resuelve usando this
Tambin sirve para invocar
mtodos con el mismo
objeto que invoc. Para el
ejemplo es miCasa
Destructores
Son los mtodos que se ejecutan automticamente cuando se
destruye un objeto.
Tienen el mismo nombre del constructor, pero se diferencian en
que est precedido del carcter ~
No deben tener ningn tipo de retorno.
Destructores
Si el mbito del objeto es local, el destructor es llamado cuando el
control es pasado fuera de su bloque de definicin.
Si el objeto fue creado dinmicamente (con new) el destructor es
llamado cuando se invoca el operador delete.
Arreglos de objetos
La declaracin de un vector de objetos se realiza de forma similar a
como se declaran los vectores de tipos de datos primitivos.
Ejemplo:
Casa misCasas[15]
Rectangulo potreros[12];
Circulo contorno[8];
Cada objeto del vector se accede por medio de un ndice, al igual
que se hace con los tipo de datos primitivos.
Ejemplo:
potreros[3].desplazar(9, 5);
Arreglos de objetos
Para crear un vector de objetos dinmico, primero se hace la
declaracin de tipo y se especfica el tamao, de la siguiente forma:
NombreClase ** nombreVector = new NombreClase * [tamao];
Ejemplo:
Mtodos setter
Mtodos que sirven para
asignar o establecer un
valor a un atributo.
Ejemplo:
Mtodos getter
Mtodos que sirven para
obtener o recuperar un
valor que se ha asignado
a algn atributo.
Ejemplo: