Está en la página 1de 4

U.T.O. – F.N.I. ING. DE SISTEMAS – ING.

INFORMÁTICA

SIS – 2210 METODOLOGÍA DE LA PROGRAMACIÓN II


GUÍA DE LABORATORIO # 4

TEMA: CLASES EN C++

OBJETIVOS.

 Creación y utilización de clases en C++.


 Comprender como crear, utilizar y destruir objetos de clases
 Controlar el acceso a los datos y a las funciones miembro de los objetos

FUNDAMENTO TEORICO.

Programación Orientada a Objetos.- Encapsula datos (atributos) y funciones (comportamiento) en


paquetes llamados clases.

Clase.- Tipos definidos por el programador, contiene datos así como un conjunto de funciones que
manipulan esos datos, los datos se denominan datos miembro o atributos y las funciones se denominan
funciones miembro o métodos

Instancia de clase.- Es un objeto declarado o tipo de clase

Objeto.- Es una instancia de una clase, es el equivalente a variable respecto al tipo de dato.

Acceso público y privado.- Los miembros de una clase, tanto atributos como métodos pueden ser de
acceso público o acceso privado.
Los miembro públicos son accesibles desde cualquier lugar dentro y fuera de la clase: se declaran
después del especificador public:, en tanto que los miembros privados son accesibles solo dentro de la
clase y se declaran después del especificador private:
Para hacer un bue n uso de la programación orientada a objetos, los atributos deben declararse como
privados y los métodos como públicos

Constructores.- Métodos que inicializan los objetos de una clase. Es una función miembro especial
que tiene el mismo nombre de la clase y no devuelve ningún tipo de dato

Destructores.- Otro tipo de función miembro especial de una clase. El nombre del destructor de una
clase es el carácter tilde (~) seguido por el nombre de la clase.
ACTIVIDAD DE CLASE.

1. Crear una clase que nos permita calcular el area de un rectángulo, tomando como atributos la base y
la altura.

Solución: Vamos a definir una clase y vamos a crear varios objetos de la misma. Empleando los métodos de la
clase modificaremos y consultaremos los atributos de los objetos de la clase.

#include <iostream>
using namespace std;

Página 1
class rectangulo
{
private:
int base, altura;
public:
void dimensiones(int b, int h);
int area(void);
void leer(int &, int &);
};

void rectangulo::dimensiones(int b,int h)


{
base=b;
altura=h;
}

int rectangulo::area(void)
{
return base*altura;
}

void rectangulo::leer(int &b,int &h)


{
cout <<"ingrese los datos para base y altura: "<<endl;
cin >>b>>h;
}

int main()
{
int x,y;
cout << "Hello world!" << endl;
rectangulo rect1, rect2,rec;
rect1.dimensiones(10,20);
rect2.dimensiones(50,100);
rec.leer(x,y);
rec.dimensiones(x,y);
cout<< "El area del primer rectangulo es: " << rect1.area()<<endl;
cout<< "El area del segundo rectangulo es: "<< rect2.area()<<endl;
cout<< "El area del tercer rectangulo es: "<< rec.area()<<endl;
return 0;
}

2.- Declarar una clase Hora, con sus atributos hora, minuto, segundo y funciones miembro para
inicializar establecer la hora y mostrar la hora en formatos militar y estándar. Con este ejemplo vamos a
mostrar además el uso de los constructores
Solución.-
#include <iostream>

using namespace std;


//clase hora
class Hora
{
public:
Hora();
void estableceHora (int, int, int);
void imprimeMilitar();
void imprimeEstandar();
void leeHora(int &, int &, int &);
Página 2
private:
int hora;
int minuto;
int segundo;
};

//Constructor
Hora::Hora()
{
hora=minuto=segundo=0;
}

void Hora::estableceHora(int h, int m, int s)


{
if(h>=0 && h<24)
hora=h;
else
hora=0;
if(m>=0 && m<60)
minuto=m;
else
minuto=0;
if(s>=0 && s<60)
segundo=s;
else
segundo=0;
}

void Hora::imprimeMilitar()
{
if(hora<10) cout<<"0"; else cout<<"";
cout<< hora<<":";
if(minuto<10) cout<<"0"; else cout<<"";
cout<< minuto<<" ";

void Hora::imprimeEstandar()
{
if(hora==0 || hora ==12) cout<< hora<<":"; else cout <<hora%12<<":";
if(minuto<10) cout<<"0"; else cout<<"";
cout<< minuto<<":";
if(segundo<10) cout<<"0"; else cout<<"";
cout<< segundo<<":";
if(hora<12) cout<<" AM"; else cout<<" PM"<<endl;
}

void Hora::leeHora(int &h, int &m, int &s)


{
cout<< "\ningrese hora, minuto, segundo:"<<endl;
cin>>h>>m>>s;
}

int main()
{
cout << "Hello world!" << endl;
int hr,minu,seg;
Hora h; //instancia del objeto h
cout<< "\nLa hora militar inicial es: ";

Página 3
h.imprimeMilitar();
cout<< "\nLa hora estandar inicial es: ";
h.imprimeEstandar();
h.leeHora(hr,minu, seg);
h.estableceHora(hr, minu,seg);
cout<<"\n\nLa hora militar despues de estableceHora es:<<";" ";
h.imprimeMilitar();
cout<<"\n\nLa hora estandar despues de estableceHora es: ";
h.imprimeEstandar();
cout<<endl;
return 0;
}

PROBLEMAS PROPUESTOS.

1. Crear una clase llamada hora que tenga miembros dato del tipo int para horas, minutos y segundos.
Un constructor inicializará el dato a 0 y otro lo inicializará a valores fijos. Una función miembro deberá
visualizar la hora en formato hh:mm:ss. Otra función miembro sumará dos objetos del tipo hora
pasados como argumentos. La función principal main() crea dos objetos inicializados y un tercero que
no está inicializado. Sumar los dos valores inicializados y dejar el resultado en el objeto no inicializado
y visualizar el valor resultante de los tres objetos.
CUESTIONARIO.

Responder a lo siguiente:
1. ¿Cuál es el significado y uso del operador “::”?
2. ¿Hay error si no utilizo un constructor? ¿Por qué?
3. ¿Cuál el significado de la notación “objeto. Método”?
4. ¿Qué son parámetros de una función?
5. ¿Qué tipos de parámetros existen?

Página 4

También podría gustarte