Beruflich Dokumente
Kultur Dokumente
Contiene
Datos (datos miembro o campos), los cuales especifican las propiedades de los objetos. Funciones (funciones miembro o mtodos), mediante los cuales se modela su comportamiento y las acciones que puede realizar.
// Declaracin de una clase class MiClase { // Declaracin de datos miembro // Declaracin de mtodos };
MODIFICADORES DE ACCESO
private: Slo se permite su acceso desde los mtodos de la clase. public: Se permite su acceso desde cualquier punto que pueda usar la clase. Un dato pblico es accesible desde cualquier objeto de la clase. protected: Se permite su uso en los mtodos de la clase y en los de las clases derivadas mediante herencia. class Triangulo { private: float cat_opuesto; float cat_adyacente; float hipotenusa; // Declaracin de mtodos }
CONSTRUCTORES
Cuando se crea un objeto de una clase siempre se llama automticamente a un constructor. Se emplea para iniciar los objetos de una clase. Es particularmente til para reservar, si es necesario, memoria para ciertos campos del objeto. Pueden haber varios constructores para una clase. Un constructor tiene el mismo nombre que la clase en la que est declarado y no devuelve nada. OJO: NO es una funcin void. Cuando no se define ningn constructor en una clase, el compilador crea un constructor por defecto, sin argumentos, que inicia los datos miembros a cero.
DESTRUCTORES
Slo hay un destructor para una clase. Cuando un objeto deja de existir siempre se llama automticamente al destructor. Un destructor tiene el mismo nombre de la clase, precedido por el carcter ~. El destructor no admite parmetros ni devuelve ningn valor. OJO: NO es una funcin void. Si no se especifica, el compilador proporciona un destructor por defecto. Su implementacin tiene sentido slo cuando el constructor ha reservado memoria dinmicamente.
class MiClase { public: int *arreglo; // Constructor MiClase () { arreglo = new int[10]; } // Destructor ~MiClase () { delete [] arreglo; } };
METODOS
Se declaran como cualquier funcin en C++. Se especifican los prototipos de los mtodos en la declaracin de la clase. Su implementacin puede ser dentro de la declaracin de la clase o en un archivo .cpp Es usual disponer de mtodos pblicos que modifican y/o leen el valor de los datos privados. Pueden definirse funciones privadas que pueden ser de utilidad (funciones auxiliares) para las funciones pblicas.
#ifndef triangulo_h #define triangulo_h class Triangulo { private: float cat_opuesto; float cat_adyacente; float hipotenusa; public: Constructor de la clase Triangulo(); // Mtodos de inspeccin float VerOpu(); float VerAdy(); float VerHip(); void MostrarTriangulo(); // Mtodos de modificacin void ModOpu(float valor); void ModAdy(float valor); void ModHip(float valor); void ModificarTriangulo(float ady, float op, float hip); }; #endif
#include <iostream> #include triangulo.h using namespace std; // Constructor de la clase Triangulo::Triangulo() { this->cat_opuesto = 0; cat_adyacente = 0; hipotenusa = 0; } // Mtodos de inspeccin float Triangulo::VerOpu() { return cat_opuesto; }
float Triangulo::VerAdy() { return cat_adyacente; } float Triangulo::VerHip() { return hipotenusa; } void Triangulo::MostrarTriangulo() { cout << "Cateto Opuesto: " << VerOpu() << endl; cout << "Cateto Adyacente: " << VerAdy() << endl; cout << "Hipotenusa: " << VerHip() << endl; } // Mtodos de modificacin void Triangulo::ModOpu(float valor) { cat_opuesto = valor; } void Triangulo::ModAdy(float valor)
{ cat_adyacente = valor; } void Triangulo::ModHip(float valor) { hipotenusa = valor; } void Triangulo::ModificarTriangulo(float ady, float op, float hip) { ModOpu(op); ModAdy(ady); ModHip(hip); }
INSTANCIACIN
Un objeto se puede crear de dos formas: Esttica (el objeto existe mientras no se pierda alcance sobre l). Sintaxis: Nombre_de_clase variable_del_objeto; Dinmica (el objeto se crea en memoria dinmica, y existe mientras no sea eliminado explcitamente de sta). Sintaxis: Nombre_de_clase *apuntador_al_objeto; apuntador_al_objeto = new Nombre_de_clase;
void main () { // Instanciacin esttica Triangulo a; // Instanciacin dinmica Triangulo *b; b = new Triangulo; delete b; }
CASO DE ESTUDIOS
Anlisis
Diseo
Construccin Pruebas Despliegue
PROBLEMA
Se quiere una aplicacin que permita manejar la informacin de un empleado. El empleado tiene nombre, apellido, sexo, fecha de nacimiento y una imagen asociada. Adems, como trabaja en una determinada compaa tiene una fecha de ingreso a la misma y un salario bsico asignado. En la aplicacin se puede (1) modificar el salario del empleado y (2) realizar algunos clculos con la informacin disponible: (a) edad actual, (b) antigedad en la empresa y (c) prestaciones a las que tiene derecho. Para el clculo de las prestaciones se utiliza la frmula p = (a * s)/12 (p: prestaciones, a: antigedad, s: salario).
ANALISIS
Nombre Resumen R1 - ingresar la informacin del empleado Se requiere recibir la informacin bsica de un empleado. Dicha informacin comprende datos personales y de vinculacin a la empresa.
Entradas Nombre del empleado Apellido del empleado Sexo del empleado Fecha de Nacimiento del empleado Fecha de ingreso del empleado a la compaa Salario bsico del empleado Resultados La informacin bsica del empleado ha sido admitida
ANALISIS
Nombre Resumen Entradas Nuevo salario bsico Resultados Nuevo Salario bsico del empleado R2 - actualizar el salario bsico del empleado
ANALISIS
Nombre
Resumen
Entradas La fecha de nacimiento del empleado Resultados Edad calculada del empleado
R3 - Calcular la edad del empleado Calcular e informar los aos cumplidos del empleado
ANALISIS
Nombre Resumen R4 - Calcular de la antigedad del empleado Calcular e informar la cantidad de aos que ha trabajado el empleado para la compaa
Entradas Fecha de ingreso del empleado a la compaa Resultados Antigedad o aos que lleva el empleado en la compaa
ANALISIS
Nombre R5 - Calcular las prestaciones de un empleado A partir del salario bsico, deducir el valor de las prestaciones del empleado. La frmula para hacerlo es Prestaciones = antigedad * 1/12 (salario bsico)
Resumen
Entradas
DISEO
class
Empleado { private: char* nombre; char* apellido; char* sexo; char* imagen; long salario; Date FechaIngreso;
CONSTRUCCION
public: void Inicializar(char* nombre, char* apellido, char* sexo, char* imagen, long salario, Date FechaIngreso); void CambiarFechaIngreso ( char* FechaIngreso ); void CambiarImagen ( char* imagen); };
Empleado.cpp
#include <iostream> #include Empleado.h using namespace std; void Empleado::CambiarFechaIngreso(char* FechaIngreso) { FechaIngreso = FechaIngreso; }