Capitulo
Tema 2: Clases de objetos
1.Implementación de una clase
1.Descripción de una clase en C++ 2.Elementos públicos y privados 3.Acceso a atributos 4.Clases amigas 5.Implementación de las operaciones 6.Funciones miembro inline 7.Organización del código en C++
2.Inicialización y finalización de clases
1.Constructores 2.Destructores
1
Clases de ObjetosImplementación de las clases
Partiendo del diseño orientado a objetos de un sistema, la tarea básica a la que nos enfrentamos durante la fase de implementación es la traducción de cada clase al lenguaje de programación orientado a objetos que estemos utilizando
Cuenta número: string titular: string saldo: float interésAnual: float ingreso(cantidad: float) reintegro(cantidad: float) ingresoInteres()estaEnRojos (): bool verSaldo(): float
Ejemplo: un objeto que representa las cuentas en una aplicación de gestión bancaria.
2
Clases de Objetos
Descripción de una clase en C++
Fichero cuenta.h
class Cuenta { char numero[20]; char titular[80]; float saldo; float interes; public: void ingreso(float cantidad); void reintegro(float cantidad); void ingresoInteres(); int estaEnRojos();float verSaldo(); };
Atributos (variables miembro)
Cuenta número: string titular: string saldo: float interés: float +ingreso(cantidad: float) +reintegro (cantidad: float) +ingresoInteres () +estaEnRojos (): bool +verSaldo (): float
Operaciones (funciones miembro)
3
Clases de Objetos
Elementos públicos y privados
Sección public (pública): miembros accesibles desde el exterior de la clase. Símbolo + en UML Sección private (privada): protege los elementos cuyo acceso desde el exterior no está permitido. Por defecto todos son privados. Símbolo – en UML
class Cuenta { private: char numero[20]; char titular[80]; float saldo; float interes; public: void ingreso(float cantidad); void reintegro(float cantidad); void ingresoInteres(); int estaEnRojos(); floatverSaldo(); };
Sección privada (private es opcional)
Sección pública
4
Clases de Objetos
Las utilidad de las operaciones privadas es servir como auxiliares a otras operaciones de la clase
Función miembro privada auxiliar (usada por ingreso y reintegro)
class Cuenta { char numero[20]; char titular[80]; float saldo; float interes; void modificarSaldo(float cantidad); public: voidingreso(float cantidad); void reintegro(float cantidad); void ingresoInteres(); int estaEnRojos(); float verSaldo(); };
5
Clases de Objetos
Acceso a atributos. Atributos públicos
En muchas ocasiones es necesario que el valor de un atributo sea visible desde el exterior para lectura Establecer como un atributo como público es posible, pero poco recomendableEl atributo puede ser modificado desde el exterior sin ningún control Se establece una dependencia entre la representación interna de la clase y el exterior
class Cuenta { char numero[20]; char titular[80]; float interes; public: float saldo; void ingreso(float cantidad); void reintegro(float cantidad); void ingresoInteres(); int estaEnRojos(); };
6
El atributo saldo puede situarse en la parte pública para que pueda ser consultado desde el exterior (poco recomendable)
Clases de Objetos
Es mucho más seguro utilizar operaciones para controlar el acceso a estos atributos, aunque pueda suponer una mínima penalización en el tiempo de acceso
class Cuenta { char numero[20]; char titular[80]; float saldo; float interes; public: void ingreso(float cantidad); void reintegro(float cantidad); float verSaldo(); voidingresoInteres(); int estaEnRojos(); };
Estas funciones permiten tanto la modificación como la lectura del atributo sin permitir un acceso directo
7
Clases de Objetos
Clases amigas
A veces dos clases están tan íntimamente relacionadas que una requiere acceso total a varios atributos y operaciones privados de la otra. Este acceso puede garantizarse permitiendo el ...
Regístrate para leer el documento completo.