Professional Documents
Culture Documents
El Lenguaje C++
El Lenguaje C++
class CuentaEmpresarial:
public Cuenta, public Empresa
Polimorfismo
Funciones Virtuales
Son funciones distintas con el mismo
nombre, declaradas virtual en la clase
base (ligadura dinámica).
Funciones convencionales se invocan de
acuerdo al tipo del objeto (en tiempo de
compilación).
Con funciones virtuales se resuelve en
tiempo de ejecución el problema de la
asignación.
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 función virtual de la clase base debe
declararse a pesar de no ser utilizada.
En este caso no es necesario definirla.
Se declara como función 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 más funciones virtuales
puras.
Si una clase derivada no define una función
virtual pura, la hereda como pura y por lo
tanto también es abstracta.
Una clase que define todas las funciones
virtuales es una clase concreta.
Entrada/Salida
Stream o flujo: dispositivo que produce o
consume información.
Flujos estándares:
cin: entrada estándar (teclado).
cout: salida estándar (pantalla).
cerr: salida de mensajes de error (pantalla).
Las clases istream, ostream e iostream son
clases que heredan de ios.
Manipuladores
Variables y/o métodos miembro que
controlan el formato.
Pueden tener argumentos (iomanip) o
no (iostream).
Sólo afectan al flujo al que se aplican.
No guardan la configuración anterior
(como sí lo hacen los indicadores).
Manipuladores
Ejemplos:
endl: se imprime un ‘\n’ y se vacía el buffer de
salida.
flush: se vacía el buffer de salida.
setw(int w): establece la anchura mínima de
campo.
cout << hex << 100;
cout << setw(10) << mat[i][j] << endl;
ifstream archivo("datos.dat");
Excepciones
Parte del código puede no ejecutarse
por algún error inesperado.
Si ocurre una excepción se interrumpe
la normal ejecución del código.
Se pueden manejar realizando una
acción adecuada para dejar al sistema
en un estado estable.
Excepciones en C++
Se separa el código para el caso en que
ocurre una situación excepcional y el
que no:
try: identifica un bloque de código en el
cual puede surgir una excepción.
throw: causa que se origine una excepción.
catch: identifica el bloque de código en el
cual la excepción se maneja.
Excepciones en C++
int main(void) {
int counts[] = {34, 54, 0, 27, 0, 10, 0};
int time = 60; // One hour in minutes