Vous êtes sur la page 1sur 8

Programacin II. Gua No.

Facultad:
Ingeniera
Escuela:
Computacin
Asignatura: Programacin II

Tema: Clases y Objetos en C++. Parte I.


Objetivos Especficos

Implementar clases, objetos, propiedades, mtodos y mensajes.

Poner en prctica conceptos de POO vistos en clase.

Crear, analizar y comprender cuando utilizar las clases.

Materiales y Equipo
Computadora con el software DevC++.
Gua Nmero 3.

Introduccin Terica
En esta prctica se tratarn los puntos bsicos para la definicin de clases y creacin de
objetos.
Definicin.
Una clase se define como la descripcin de un objeto, la cual tiene un conjunto de atributos
para describir las caractersticas del objeto y un conjunto de mtodos que describen las
operaciones o funciones del objeto.
Pero la definicin de clases encierra muchas otros conceptos para cumplir sus objetivos, as en
esta prctica veremos los siguientes conceptos:

Sintaxis de definicin de clases.

Miembros.

Acceso a miembros.

Constructor y destructor de objetos.

Creacin de objetos.

Programacin II. Gua No.3

Para tratar los conceptos anteriores usaremos un ejemplo de definicin de clase.


Simularemos la entidad empleado. Necesitamos registrar los siguientes datos: nmero de DUI,
nombres, apellidos, cargo dentro de la empresa, departamento en el que labora, su sueldo y la
fecha de ingreso a la empresa.
A partir del enunciado anterior se identifican sus atributos y algunos de sus mtodos, y se
presentan en el siguiente diagrama de clase:

Sintaxis para la definicin de clase:


class <nombre de clase>
{

private:
<atributos y/o miembros>
protected:
<atributos y/o miembros>
public:
<atributos y/o miembros>

};

Para declarar una clase debe proporcionarse primero su nombre, y se definen las regiones de
acceso privada (private) en la que solo la misma clase puede hacer uso de esos elementos,
protegida (protected) en la que solo la misma clase y las clases heredadas podrn hacer uso

Programacin II. Gua No.3

de esos elementos y pblica (public) en la que tanto la clase como cdigo externo puede hacer
uso de los elementos.

A partir del diagrama de clase anterior se desprende el siguiente cdigo de definicin de clase:
class Empleado
{

private:
char DUI[10];
string nombres;
string apellidos;
string cargo;
float sueldo;
string fecha_ingreso;
string departamento;

public:
Empleado( );
Empleado(char numdui[ ], string name, string lastname, string cargoe, float sueldoe,
string ingreso, string depto);
~Empleado( ){ }

char *ObtenerDUI( );
string ObtenerAntiguedad( );
string ObtenerNombreEmpleado( );
string ObtenerCargo( );
float ObtenerSueldo( );
string ObtenerDepartamento( );
void ModificarDUI(char numdui[ ] );
void ModificarCargo(string cargoe);
void ModificarSueldo(float sueldoe);
void ModificarDepartamento(string depto);
};

Como se ve en el cdigo anterior tenemos solo regin privada y publica. En la regin privada
estn los atributos con el objetivo que solo puedan ser modificados por la clase misma, y en la

Programacin II. Gua No.3

regin pblica se agregan los mtodos (solo la declaracin de las funciones) para dar acceso a
los atributos a cdigo externo a la clase.
Tambin se definen los constructores y el destructor. Estos son funciones sin tipo de retorno y
tienen el mismo nombre de la clase (solo el destructor antepone el carcter ~), hay dos
constructores de los cuales uno tiene parmetros para configurar la clase, el segundo no tiene
parmetros, as este tomar valores por default definidos por el constructor.

La definicin de mtodos de una clase se puede hacer dentro de la misma clase o fuera de la
definicin de la clase.
Si se realiza fuera de la definicin de la clase se debe indicar que son miembros de la clase.
La sintaxis de esta definicin requiere del operador de resolucin de mbito (::) y es la
siguiente:
<tipo de retorno> <nombre de clase> : :<nombre de mtodo>(<lista de parmetros>)
{

<cuerpo de mtodo>

En el cdigo que sigue se definen algunos de los mtodos declarados en la clase:


Empleado::Empleado( ) //constructor
{

DUI[0]='\0';
nombres=" ";
apellidos= ;
cargo= ;
sueldo=0.0;
fecha_ingreso= ;
departamento= ;

}
Empleado::Empleado(char numdui[ ], string name, string lastname, string cargoe, float sueldoe,
string ingreso, string depto)
{

for(int i=0; i<10; i++)


DUI[i]= numdui [i];

DUI[10]='\0';
nombres=name;

//constructor con parmetros

Programacin II. Gua No.3

apellidos=lastname;
cargo=cargoe;
sueldo=sueldoe;
fecha_ingreso=ingreso;
departamento=depto;
}

char * Empleado::ObtenerDUI( )
{

return DUI;

string Empleado::ObtenerCargo()
{

return cargo;

string Empleado::ObtenerDepartamento( )
{

return departamento;

void Empleado::ModificarDUI(char numdui[ ])


{

for (int i=0; i<10; i++)


DUI[i]=numdui[i];
DUI[10]=\0;

Ac se han definido algunos de los mtodos de la clase Empleado, como se puede ver no se
define el destructor, este fue definido en la clase dado que no contiene cdigo a ejecutar.

La creacin de objetos es muy similar a declarar variables. Se puede hacer en otra clase
(anidamiento de objetos) o en una funcin de la siguiente manera:
<nombre de clase> <nombre de objeto><(lista de parmetros para el constructor)>

Programacin II. Gua No.3

Ejemplo:
Empleado emp1("04016850-1",Alfredo, Guardado, Programador,800.00,23/09/2014, Informatica);

Como se puede ver, se est instanciando la clase Empleado en el objeto emp1 con siete
parmetros, los cuales son recogidos por el constructor para inicializar el objeto.

Y por ltimo el acceso a los miembros pblicos (atributos o funciones) se hace con el nombre
de la clase, seguido de un punto y el nombre del miembro:

<nombre del objeto> <nombre de miembro publico>

Ejemplo:
emp1.ObtenerCargo( );

Ac se hace el llamado al mtodo ObtenerCargo del objeto emp1 el cual fue declarado y
definido en el cdigo de la clase Empleado.

Procedimiento
Ejercicio
1:
Bibliografa
Tomar el cdigo anterior y completar el programa para los mtodos que no se implementaron
enGua
el

1ejemplo:

ObtenerAntiguedad,

ObtenerNombreEmpleado,

ModificarCargo,

ModificarSueldo y ModificarDepartamento.
Debe completarse el programa con un men que permita la creacin de objetos y la aplicacin
de sus mtodos.
El programa debe permitir realizar las siguientes acciones:
a) Ingresar un empleado al sistema.
b) Modificar datos del empleado. Debe considerarse que dato desea modificarse.
c) Mostrar los datos de un empleado.
d) Salir del sistema.

Programacin II. Gua No.3

Investigacin Complementaria
1. A3 partir
Gua

de los diagramas de clase hechos en el ejercicio 1 y en la tarea

complementaria 1 de la gua anterior (Gua No.2), escribir el cdigo necesario para la

Gua definicin
4

de las clases descritas en los Diagramas de Clase. (Comente el cdigo

desarrollado)
fa

2. Investigar qu es el anidamiento de objetos y agregar un ejemplo de su uso en cdigo


de C++.(Debidamente comentariado)

Fuentes de Consulta
1. Deitel, Paul J. y Deitel, Harvey M. Cmo programar en C++. 6 Edicin Prentice Hall,
2009.
2. Joyanes Aguilar, Luis; Snchez Garca, Lucas. Programacin en C++: Un enfoque
prctico. 1 Edicin en espaol. McGraw Hill. 2006. Libro en lnea. Ebrary. Recursos
Elctronicos Universidad Don Bosco.
3. http://dis.unal.edu.co/~fgonza/courses/2003/poo/c++.htm.
Material
sobre
Programacin Orientada a Objetos. Departamento de Ingeniera de Sistemas.
Universidad Nacional de Colombia. Consultado diciembre 2014.

Programacin II. Gua No.3

Gua 3: Clases y Objetos en C++.

Alumno:

Hoja de cotejo:

3
1

Mquina No:

Alumno:

GL:

Docente:

Fecha:

EVALUACION
%
CONOCIMIENTO

Del 20
al 30%

APLICACIN
DEL
CONOCIMIENTO

Del 40%
al 60%

ACTITUD

Del 15%
al 30%

TOTAL

100%

1-4

5-7

8-10

Conocimiento
deficiente
de los
fundamentos
tericos

Conocimiento
y explicacin
incompleta de
los
fundamentos
tericos

Conocimiento
completo y
explicacin
clara de los
fundamentos
tericos

No tiene
actitud
proactiva.

Actitud
propositiva y
con
propuestas no
aplicables al
contenido de
la gua.

Tiene actitud
proactiva y
sus propuestas
son concretas.

Nota

Vous aimerez peut-être aussi