Você está na página 1de 6

Programacin Orientada a Objetos Clase prctica Tema 3 Clases

PROGRAMACIN ORIENTADA A OBJETOS (POO)


CLASE PRCTICA DEL TEMA 3: CLASES
1. Encuentre el o los errores en cada uno de los siguientes incisos y explique cmo
corregirlo:
a) Suponga que se declara el siguiente prototipo en la clase Time:
void ~Time(int);
b) Lo siguiente es una definicin parcial de la clase Time:
class Time {
public:
// function prototypes
private:
int hour = 0;
int minute = 0;
int second = 0;
};
c) Suponga el siguiente prototipo que se declara en la clase Employee:
int Employee (const char *, const char *);
d)
char *cadena;
cadena = new char [20];
free(cadena);
e)
class Example {
public:
Example (int y = 10) {data = y; }
int getIncrementedData() const { return ++data; }
static int getCount()
{
cout<<El dato es << data << endl;
return count;
}
private:
int data;
static int count;
};

MSc. lvaro Altamirano Osorio

Programacin Orientada a Objetos Clase prctica Tema 3 Clases

2. Indique la salida de cada uno de los programas siguientes:


a)
#include <iostream.h>
class miclase{
int a;
public:
miclase();
~miclase();
void show();
};
miclase::miclase()
{
a=100;
}
miclase::~miclase()
{
cout << "Destruyendo...\n";
getch();
}
void miclase::show()
{
cout << a;
}
void main()
{
miclase obj;
obj.show();
}
b)
#include <iostream.h>
class objetos{
int i;
public:
objetos(int n){i=n;}
int devol(){return i;}
};
int sqr(objetos o)
{
return o.devol()*o.devol();
}

MSc. lvaro Altamirano Osorio

Programacin Orientada a Objetos Clase prctica Tema 3 Clases


void main()
{
objetos a(10), b(2);
cout << sqr(a);
cout << sqr(b);
}
c)
#include <iostream.h>
#include <string.h>
class ejemplo{
char cadena[80];
public:
void muestra(){cout<<cadena<<"\n";}
void copia(char *cad){strcpy(cadena,cad);}
};
ejemplo entrada()
{
char cadena[80];
ejemplo str;
cout<<"Introducir cadena: ";
cin>>cadena;
str.copia(cadena);
return str;
}
void main()
{
ejemplo ob;
ob=entrada();
ob.muestra();
}
d)
#include <iostream.h>
class miclase{
int a;
public:
miclase(int x);
int get();
};
miclase::miclase(int x)
{
a=x;
}

MSc. lvaro Altamirano Osorio

Programacin Orientada a Objetos Clase prctica Tema 3 Clases


int miclase::get()
{
return a;
}
void main()
{
miclase obj(200);
miclase *p;
p=&obj;
cout << "El valor del Objeto es " << obj.get();
cout << "El valor del Puntero es " << p->get();
}
e)
#include <iostream.h>
class CRectangle {
int *width, *height;
public:
CRectangle (int,int);
~CRectangle ();
int area (void) {return (*width * *height);}
};
CRectangle::CRectangle (int a, int b) {
width = new int;
height = new int;
*width = a;
*height = b;
}
CRectangle::~CRectangle () {
delete width;
delete height;
}
int main () {
CRectangle rect (3,4), rectb (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}
f)
#include <iostream.h>
class CRectangle {
int width, height;
public:

MSc. lvaro Altamirano Osorio

Programacin Orientada a Objetos Clase prctica Tema 3 Clases


CRectangle ();
CRectangle (int,int);
int area (void) {return (width*height);}
};
CRectangle::CRectangle () {
width = 5;
height = 5;
}
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
int main () {
CRectangle rect (3,4);
CRectangle rectb;
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
}
g)
#include <iostream.h>
class CRectangle {
int width, height;
public:
void set_values (int, int);
int area (void) {return (width * height);}
};
void CRectangle::set_values (int a, int b) {
width = a;
height = b;
}
int main () {
CRectangle a, *b, *c;
CRectangle * d = new CRectangle[2];
b= new CRectangle;
c= &a;
a.set_values (1,2);
b->set_values (3,4);
d->set_values (5,6);
d[1].set_values (7,8);
cout << "a area: " << a.area() << endl;
cout << "*b area: " << b->area() << endl;
cout << "*c area: " << c->area() << endl;
cout << "d[0] area: " << d[0].area() << endl;
cout << "d[1] area: " << d[1].area() << endl;

MSc. lvaro Altamirano Osorio

Programacin Orientada a Objetos Clase prctica Tema 3 Clases

return 0;

h)
#include <iostream.h>
class CDummy {
public:
static int n;
CDummy () { n++; };
~CDummy () { n--; };
};
int CDummy::n=0;
int main () {
CDummy a;
CDummy b[5];
CDummy * c = new CDummy;
cout << a.n << endl;
delete c;
cout << CDummy::n << endl;
return 0;
}
3. Realice un programa en C++ que declare una clase llamada Vuelo que tenga como
datos miembro:
int pasajeros;
float precio;
char *avion;
char *piloto;
char **asientos;

// almacena la cantidad de pasajeros del vuelo


// almacena el precio del vuelo
// almacena el tipo de avin
// almacena el nombre del piloto
// almacena los nombres de las personas que van en
// cada uno de los asientos

Se deben declarar y definir las funciones siguientes:

Un constructor que inicialice los correspondientes datos miembro.


Un constructor copia.
La sobrecarga del operador de asignacin que permita copiar el contenido
de un objeto en otro.
Una funcin que lea y asigne nuevos valores a los datos miembros de la
clase.
Una funcin que calcule e imprima el total de dinero recaudado en el vuelo.
Una funcin que imprima los valores de los datos miembros.

En la funcin main() se deben declarar varios objetos de tipo Vuelo. A continuacin


se deben mandar a llamar cada una de las funciones definidas para comprobar su
correcto funcionamiento.

MSc. lvaro Altamirano Osorio

Você também pode gostar