Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Orientada
a Objetos
Ing. Gabriela Camarena Clemente
Introducción
La idea fundamental de los lenguajes orientados a
objetos es combinar en una única unidad o módulo, tanto
los datos como las funciones que operan sobre esos
datos. Tal unidad se llama objeto.
Las funciones de un objeto se llaman funciones miembro
o métodos. Los datos de un objeto se conocen también
como atributos o variables de instancia.
Los datos son ocultos, de modo que están protegidos de
alteraciones accidentales. Los datos y las funciones se
dice que están encapsulados en una única entidad. El
encapsulamiento de datos y la ocultación de los datos son
términos clave en la descripción de los lenguajes
orientados a objetos.
Declaración de constantes
A la declaración de un objeto se puede anteponer el
calificador const, con el fin de hacer que dicho objeto sea, en
lugar de una variable, una constante. Por ejemplo:
Argumento Modo
ios::in Modo entrada
ios::app Modo añadir
ios::out Modo salida
ios::ate Añadir y buscar el fin de archivo
ios::nocreate Genera un error si no existe el archivo
ios::trunc Trunca el archivo a 0 si existe ya
ios::noreplace Genera un error si el archivo exite ya
ios::binary El archivo se abre en modo binario
Ejemplos:
//EJEMPLO 1. Abre el archivo autoexec.bat para entrada de texto.
char* cAutoExec = “\\AUTOEXEC.BAT”;
fstream f;
//abrir para entrada
f.open (cAutoexec, ios::in);
//EJEMPLO 2. Abre el archivo DEMO.DAT para salida de texto.
fstream f;
// abrir para salida
f.open (“DEMO.DAT”,ios::out);
// EJEMPLO 3. Abre el archivo PRUEBAS.DAT para entrada y salida
//binaria.
fstream f;
//abrir para E/S de acceso aleatorio
f.open(“PRUEBAS.DAT”,ios::in | ios::out |ios::binary);
//Forma habitual de abrir un archivo:
Ifstream miflujo (“miarch”); //abre el archivo
para entrada
//Código para confirmar que el archivo se ha
abierto correctamente.
ifstream miflujo (“archdemo”);
if (!miflujo) {
cout<< “No se puede abrir el archivo\n”;
//error
}
La función close
La función miembro close cierra el archivo al
que se conecta el objeto de flujo.
void close();
Ejemplo:
fstream f;
// abrir para entrada
f.open (cAutoExec, ios::in);
// sentencias de E/S
f.close(); //cerrar bufer del flujo de archivo
UNIDAD IV “HERENCIA”
4.1 Definición de herencia.
Es el mecanismo para compartir automáticamente
métodos y atributos entre clases y subclases. La
herencia permite definir nuevas clases a partir de otras
clases ya existentes, de modo que presentan las
mismas características y comportamiento de éstas, así
como otras adicionales.
-Tipos de Herencia.
Existen 3 tipos de herencia: pública, privada y
protegida.
4.2 Variables y funciones miembro
protegidas.
Se puede acceder por funciones miembro de la
misma clase o de clases derivadas de la misma,
así como por amigas.
Si un miembro es protegido, los objetos de la
clase derivada pueden acceder a él como si
fuera público. Para el resto del programa, los
miembros protegidos aparecen como privados.
4.3 Constructores y destructores
“Constructores”
Lista de parámetros Lista de parámetros
del constructor de del constructor de la
la clase derivada clase base
Nombre de la clase derivada Nombre de
la clase base
Lista de inicialización de
miembros datos de la
clase
La primera línea incluye una llamada al constructor de la clase base. El
constructor de la clase base se llama antes de que se ejecute el cuerpo del
constructor de la clase derivada, ya que el objeto base constituye el
fundamento del objeto derivado.
El constructor de una clase derivada tiene que
realizar 2 tareas:
• Inicializar el objeto base
• Inicializar todos los miembros dato
La clase derivada tiene un constructor-
inicializador, que llama a uno o más
constructores de la clase base. El inicializador
aparece inmediatamente después de los
parámetros del constructor de la clase derivada
y está precedido por dos puntos (:)
“Destructores”
Los destructores no se heredan, aunque se
genera un destructor por defecto si se requiere.
Se utiliza cuando se quiere liberar memoria. Los
destructores se manejan como los constructores
excepto que todo se hace en orden inverso (el
destructor de la última clase derivada se ejecuta
primero).
Para encontrar el área del cuadrado nos apoyaremos
en el triángulo rectángulo, pues este nos relaciona con
dos de los lados del cuadrado y el diámetro del círculo
que en este caso sería 2r.
Empleando el teorema de Pitágoras obtenemos:
(2r)² = L² + L²
4r² = 2L²
L² = 2r²
A = 2r²
Pin 9 8 7 6 5 4 3 2
Valor 128 64 32 16 8 4 2 1
Dato D7 D6 D5 D4 D3 D2 D1 D0
ENTRADA
Pin 11 10 12 13 15 NA NA NA
Dato /D7 D6 D5 D4 D3 D2 D1 D0
Referencias
Título Programación en C+: algoritmos, estructuras de datos y objetos
http://c.conclase.net/curso/?cap=031
http://www.zator.com/Cpp/E4_11_6.htm
clases abstractas
https://msdn.microsoft.com/es-es/library/c8whxhf1.aspx
http://c.conclase.net/curso/?cap=038
excepciones
https://msdn.microsoft.com/es-MX/library/6dekhbbc.aspx
http://c.conclase.net/curso/?cap=043
http://www.infor.uva.es/~jmrr/tgp/tgprecurso/excepcio2.htm
puerto paralelo
http://automatizados.awardspace.com/programacion/Pparalelo.pdf
http://www.forosdeelectronica.com/f26/usar-puerto-paralelo-c-visual-basic-lab-view-2259/
delay
https://ccodigo.wordpress.com/tag/time/
archivos
file:///C:/Users/gabriela/Downloads/joyanes_c_java_y_uml_capitulo_en_linea_c33.pdf
Serie
http://virtual.uaq.mx/ingenieria/pluginfile.php/25099/mod_resource/content/10/MANUAL%20DE%20PR%C3%81CTICAS%20PROGRAMACION%20AVANZADA.pdf