Beruflich Dokumente
Kultur Dokumente
H O JA
IN G E N IE R O E N
C O M P U TA C I N
ESIME CULHUACAN
N O M BR E D EL ALU M NO
M ES
A O
A S IG N A T U R A
PROGRAMACION ORIENTADA A
OBJETOS
N o m b re (s )
G R UPO
N o. B O LE TA
FECH A
D IA
A p e l lid o p a te r n o
A p e l lid o m a t e r n o
PRO FESO R
ING. R. OSORNIO
PRCTICA No. 20
POLIMORFISMO
PARTE IV
I.- OBJETIVO:
Al trmino de la practica el alumno podr:
- Hacer programas con polimorfismo
EQUIPO DE CMPUTO
CPU
Marca_____________ Mod. _________________ N. ______________
Monitor
Marca_____________ Mod. _________________ N ______________
Teclado
Marca_____________ Mod. _________________ N. ______________
DISKETE DE 3.5
ROS
PRACTICA 20
PAGINA
En cambio, cuando trabajamos con clases, por tratarse de tipos defnidos el usuario, tenemos nosotros
mismos que construir las conversiones que deseamos que realice el compilador cuando utilice un objeto de una
clase. Estas conversiones pueden ser entre clases, o entre una clase y un tipo predefnido. Para ello dis ponemos de dos mecanismos: constructores y operadores de conversin. Tales conversiones, denominadas
normalmente conversiones definidas por el usuaria se realizan implcitamente; igual que las conversiones
estndar.
Por ejemplo, una funcin que espera un argumento de tipo C puede ser invocada no slo con un
argumento de tipo C, sino tambin con un argumento de tipo X s existe una conversin de X a C.
Operador de conversin
Segn se ha visto, un constructor es apropiado para convertir implcitamente un objeto de un tipo bsico a
un tipo defnido por el usuario; por ejemplo, un int a un CComplejo. Pero suponga ahora que tambin necesita
que se realice de una forma implcita, o explcita si existe ambigedad, la conversin inversa; esto es, de un
tipo defnido por el usuario a un tipo bsico. Por ejemplo,
double d;
CRacional r( 1, 2 );
d = r; II v tiene que convertirse a double
Para que la sentencia d = r se ejecute correctamente, es preciso que ocurra una conversin implcita de
CRacional a double. Este tipo de conversin no sepuede realizar con un constructor, ya que no podemos defnir
un constructor de un tipo base.
Cuando necesitemos convertir objetos de una determinada clase a otro tipo, tendremos que utilizar un
operador de conversin. La sintaxis correspondiente a este operador es la siguiente:
C::operator T();
donde T es el nombre de tipo de conversin. La conversin
al tipo especifcado por T (tipo predefnido o tipo defnido por el usuario).
ROS
que
se
realiza
PRACTICA 20
es
PAGINA
de
IV. DESARROLLO
EL ALUMNO SEGUIR LA SECUENCIA INDICADA, DESCRIBIENDO EN CADA INCISO
LOS PASOS QUE SIGA:
4.1. Realice un programa con Programacin orientada a objetos en C++ con Class:
"PROGRAMA QUE haga la multiplicadcion de 4 numeros (long, long, int, int) y que el
resultado lo de en long (utlizando operador de conversin)
#include <iostream.h>
LABORATORIO DE PROGRAMACION ORIENTADA A OBJETOS
ROS
PRACTICA 20
PAGINA
#include <stdlib.h>
class Tiempo {
private:
int hora;
int minuto;
public:
Tiempo(int h=0, int m=0);
operator int();
};
Tiempo::Tiempo(int h, int m){
hora = h;
minuto = m;
}
Tiempo::operator int(){
return hora*60 + minuto;
}
void main(){
Tiempo T1(4,55);
int minutos;
minutos = T1;
cout << "\nEL tiempo T1 convertido es: " << minutos << " minutos\n";
system("PAUSE");
}rn 0;
}
ROS
PRACTICA 20
PAGINA