class CuentaEmpresarial:
public Cuenta, public Empresa
Polimorfismo
Funciones Virtuales
Son funciones distintas con el mismo
nombre, declaradas virtual en la
clase base (ligadura dinmica).
Funciones convencionales se invocan
de acuerdo al tipo del objeto (en
tiempo de compilacin).
Con funciones virtuales se resuelve
en tiempo de ejecucin el problema
de la asignacin.
Funciones virtuales
class A {
A objA;
public:
B objB;
virtual void mostrar();
}
A* ptrA1;
A* ptrA2;
class B: public A {
public:
ptrA1 = &objA;
void mostrar();
ptrA2 = &objB;
}
ptrA2->mostrar();
Funciones virtuales puras
La funcin virtual de la clase base debe
declararse a pesar de no ser utilizada.
En este caso no es necesario definirla.
Se declara como funcin virtual pura:
virtual funcion1() const = 0;
No se pueden definir objetos de esa clase.
Se pueden definir punteros a esa clase.
Clases abstractas
Contienen una o ms funciones virtuales
puras.
Si una clase derivada no define una
funcin virtual pura, la hereda como
pura y por lo tanto tambin es
abstracta.
Una clase que define todas las funciones
virtuales es una clase concreta.
Entrada/Salida
Stream o flujo: dispositivo que produce o
consume informacin.
Flujos estndares:
cin: entrada estndar (teclado).
cout: salida estndar (pantalla).
cerr: salida de mensajes de error (pantalla).
Las clases istream, ostream e
iostream son clases que heredan de ios.
Manipuladores
Variables y/o mtodos miembro que
controlan el formato.
Pueden tener argumentos (iomanip)
o no (iostream).
Slo afectan al flujo al que se aplican.
No guardan la configuracin anterior
(como s lo hacen los indicadores).
Manipuladores
Ejemplos:
endl: se imprime un \n y se vaca el buffer de
salida.
flush: se vaca el buffer de salida.
setw(int w): establece la anchura mnima de
campo.
cout << hex << 100;
cout << setw(10) << mat[i][j] << endl;
ifstream archivo("datos.dat");
Excepciones
Parte del cdigo puede no ejecutarse
por algn error inesperado.
Si ocurre una excepcin se
interrumpe la normal ejecucin del
cdigo.
Se pueden manejar realizando una
accin adecuada para dejar al
sistema en un estado estable.
Excepciones en C++
Se separa el cdigo para el caso en
que ocurre una situacin excepcional
y el que no:
try: identifica un bloque de cdigo en el
cual puede surgir una excepcin.
throw: causa que se origine una
excepcin.
catch: identifica el bloque de cdigo en
el cual la excepcin se maneja.
Excepciones en C++
int main(void) {
int counts[] = {34, 54, 0, 27, 0, 10, 0};
int time = 60; // One hour in minutes