Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El Lenguaje C++
El Lenguaje C++
O acceder a ellos:
double getReal(){return real;}
double getImag(){return imag;}
Ejemplo: complejo.h
A continuacin se declara la sobrecarga de
los operadores aritmticos, comparacin y
asignacin (operadores miembro).
Complejo operator+ (const Complejo&);
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