top of page

Sobrecarga de operadores.

 

OBJETIVO: 

Realizar una consulta de sobrecarga de operadores en c++, utilizando fuentes informativas como el internet, para poder ampliar y mejorar nuestros conocimientos en c++.

 

 

La sobrecarga de operadores es uno de los mecanismos que nos permite ampliar las capacidades de los lenguajes de programación orientados a objetos. El ejemplo más sencillo de una sobrecarga de operadores nos lo da el lenguaje mismo, es decir, en una operación aritmética (por ejemplo, una suma) el compilador determina el tipo de operación requerida de acuerdo con el tipo de datos involucrados. Vamos a suponer que se tienen las variables: int A, B; double X, Y; int R; y las siguientes instrucciones:

 

R = A + B - C;

R = A + X;

R = X + Y;

 

 

SINTAXIS:

 

 

tipo  operador + (lista de parámetros);

 

 

EN DONDE:

 

  1. Tipo se refiere al tipo regresado por el operador

  2. Operador es una palabra reservada y debe aparecer en toda declaración de sobrecarga de operadores

  3. El símbolo + está en representación de cualquier operador

  4. Lista de parámetros indica los argumentos sobre los que operará la función de sobrecarga

 

Nota: en el caso de que el operador sobrecargado se hace para una clase específica la sintaxis se extiende de la siguiente manera:

 

tipo  nombre_clase::operator + (lista de parámetros);

 

 

EJEMPLO:

 

 

#include <iostream>

using namespace std;

 

class Pareja {

public:

    double a, b;

 

    // constructor parametrizado

    Pareja(const double a,const double b)

    {

        this->a = a;

        this->b = b;

    }

};

 

// Sobrecarga del operador +

Pareja& operator +(const Pareja &p1,const Pareja &p2)

{

  return *(new Pareja(p1.a + p2.a, p1.b + p2.b) );

}

 

int main()

{

    Pareja A(50, 75 );

    Pareja B(150, 175 );

    Pareja C = A + B;

 

    cout << "A = " << A.a << ',' << A.b << "\n";

    cout << "B = " << B.a << ',' << B.b << "\n";

    cout << "C = " << C.a << ',' << C.b << "\n";

 

    return 0;

}

 

 

 

 

 

 

 

 

bottom of page