Está en la página 1de 3

UNMSM Facultad de Ingeniera Industrial

Algoritmos y Programacin
Mag. Hilmar Hinojosa Lazo 1

SOBRECARGA DE OPERADORES

Sobrecargar un operador significa alterar el significado que dicho operador tiene por
defecto. Por ejemplo el operador +,se usa para representar la suma de datos numricos
,pero puede alterarse de tal forma que pueda usarse para representar la suma de objetos de
la clase vector.

Ejemplo de Sobrecarga de Operadores

#include <iostream>
#include <stdlib.h>
using namespace std;

class quebrado
{
private:
int num;
int den;
public:
quebrado();
quebrado(int n,int d);
~quebrado();
void ingresar();
void imprimir();
void asignar(int n,int d);
friend quebrado operator +(quebrado q1,quebrado q2);
friend quebrado operator *(quebrado q1,quebrado q2);
friend quebrado operator /(quebrado q1,quebrado q2);
};

quebrado::quebrado()
{
num = 1;
den = 1;
}

quebrado::quebrado(int n,int d)
{
num = n;
den = d;
}

quebrado::~quebrado()
{ }
UNMSM Facultad de Ingeniera Industrial
Algoritmos y Programacin
Mag. Hilmar Hinojosa Lazo 2

void quebrado::ingresar()
{
cout<<"Ingrese numerador: ";
cin>>num;
cout<<"Ingrese denominador: ";
cin>>den;
}

void quebrado::imprimir()
{
cout<<num<<"/"<<den;
}

void quebrado::asignar(int n,int d)
{
num = n;
den = d;
}

quebrado operator +(quebrado q1,quebrado q2)
{
quebrado q3;
q3.num = q2.den * q1.num + q1.den * q2.num;
q3.den = q1.den * q2.den;
return q3;
}

quebrado operator *(quebrado q1,quebrado q2)
{
quebrado q3;
q3.num = q1.num * q2.num;
q3.den = q1.den * q2.den;
return q3;
}

quebrado operator /(quebrado q1,quebrado q2)
{
quebrado q3;
q3.num = q1.num * q2.den;
q3.den = q1.den * q2.num;
return q3;
}



UNMSM Facultad de Ingeniera Industrial
Algoritmos y Programacin
Mag. Hilmar Hinojosa Lazo 3

int main()
{
quebrado r1(3,8),r2,r3,r4,r5;
cout<<"r1 = ";
r1.imprimir();
cout<<endl;
r2.ingresar();
cout<<"r2 = ";
r2.imprimir();
cout<<endl;
r3 = r1 + r2;
cout<<"r1 + r2 = ";
r3.imprimir();
cout<<endl;
r4 = r1 * r2;
cout<<"r1 * r2 = ";
r4.imprimir();
cout<<endl;
r5 = r1 / r2;
cout<<"r1 / r2 = ";
r5.imprimir();
cout<<endl;
system("PAUSE");
}

También podría gustarte