Fecha de efectividad: SEMESTRE 2009-1 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formato para prácticas de laboratorio PLAN DE ESTUDIO CARRERA Ing. en Mecatrónica PRÁCTICA No. 7 1 CLAVE ASIGNATURA 2009-2 NOMBRE DE LA ASIGNATURA 11892 Programación Orientada a Objetos LABORATORIO DE Ingeniero en Mecatrónica NOMBRE DE LA PRÁCTICA Sobrecarga de operadores DURACIÓN(HORAS) 2 INTRODUCCIÓN En esta práctica el alumno realizará programas utilizando la sobrecarga de operadores. 2 OBJETIVO (COMPETENCIA) Realizar programas utilizando sobrecarga de operadores de manera eficiente. 3 FUNDAMENTO El proceso de sobrecarga de operadores se refiere a la capacidad de un operador para desarrollar una función en varios contextos diferentes. La mayoría de los operadores en C++ están sobrecargados. Por ejemplo el operador + realiza distintas acciones cuando los operandos son enteros o en coma flotante. Formuló Revisó M.S.C. Elvia Cristina Márquez Salgado M. I. Jesús Armando Cantú Cárdenas Maestro Coordinador de la carrera de Ingeniería Mecatrónica Aprobó Autorizó Dr. Maximiliano De Las Fuentes Lara Gestión de la Calidad Página 1 de 4 Código GC-N4-017 Director de la Facultad Revisión 0 Fecha de efectividad: SEMESTRE 2009-1 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formato para prácticas de laboratorio Sintaxis para declarar operadores sobrecargados tipo <nombre clase>:: operator operador ([argumentos]); donde tipo indica el tipo de valor devuelto por la función específica y operador es uno de los operadores válidos. Un operador binario para una clase puede sobrecargarse como una función miembro no estática con un argumento, o como una función no miembro con dos argumentos (uno de esos argumentos debe ser un objeto o una referencia a un objeto de la clase). Supongamos que sobrecargamos el operador binario + para la clase Racional: Como una función miembro se definiría: class Racional{ public: Racional operator+( const Racional &); ….. }; Si y y z son objetos de esa clase, la operación y+z implica que el compilador genera la llamada y.operator+(z) Como una función no miembro se definiría: class Racional{ friend Racional operator+(const Racional &, const Racional &); ….. }; Si y y z son objetos de esa clase, la operación y+z implica que el compilador genera la llamada operator+(y,z) La sobrecarga de operadores hace que el programa sea más claro que mediante llamadas de funciones. El operador sobrecargado debe realizar las mismas funciones o parecidas que las que realizan los operadores sobre los objetos de los tipos integrados. Código Página 2 de 4 GC-N4-017 Revisión 0 Fecha de efectividad: SEMESTRE 2009-1 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formato para prácticas de laboratorio PROGRAMA PARA SOBRECARGAR EL OPERADOR + #include<conio.h> #include<iostream.h> class sobrecarga { int numero; public: sobrecarga(int); sobrecarga operator + (sobrecarga ob); void desp_resultado(); }; sobrecarga::sobrecarga(int n=0) { numero=n; } sobrecarga sobrecarga::operator + (sobrecarga ob) { sobrecarga temp; temp.numero=numero+ob.numero; return temp; } void sobrecarga::desp_resultado() { cout<<"el resultado es:"<<numero<<endl; } void main() { sobrecarga ob1(5),ob2(10); ob1=ob1+ob2+ob2+ob1; Código Página 3 de 4 GC-N4-017 Revisión 0 Fecha de efectividad: SEMESTRE 2009-1 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formato para prácticas de laboratorio clrscr(); ob1.desp_resultado(); getch(); } 4. PROCEDIMIENTO (DESCRIPCIÓN) Realizar los programas que indique el maestro de laboratorio. 1.- copiar el programa de ejemplo. 2.- Escribir un programa que permita sobrecargar el operador – para números enteros. 3.- Escribir un programa que permita sobrecargar el operador * para números reales. C) CÁLCULOS Y REPORTE Se revisarán los programas haciendo pruebas 1 o más veces. 5. RESULTADOS Y CONCLUSIONES El alumno debe obtener los resultados presentados en la práctica para los programas de ejemplo, a sí como explicar claramente el funcionamiento de todos los programas de la práctica. 6. ANEXOS Ninguno 7. REFERENCIAS Turbo C/C++ (Manual de Referencia), Herbert Schildt, Ed. McGrawHill. Cómo Programar en C++, Deitel y Deitel, Ed. Pearson Prentice Hall. Código Página 4 de 4 GC-N4-017 Revisión 0