Sobrecargue el operador de suma en C++

Muhammad Adil 11 diciembre 2023
Sobrecargue el operador de suma en C++

La sobrecarga de operadores es una técnica en la que un programador puede redefinir el significado de un operador. Es un mecanismo que permite a los programadores ampliar la sintaxis de su lenguaje de programación agregando nuevos significados a símbolos y palabras clave.

Los operadores se pueden clasificar como unarios, binarios o ternarios. Los operadores unarios toman un operando, los operadores binarios toman dos operandos y los operadores ternarios toman tres operandos.

Puede sobrecargar operadores utilizando una función friend, una función miembro o una función normal. Este artículo solo se centrará en sobrecargar el operador de suma usando la función friend en C++.

La palabra clave friend se usa en el lenguaje C++ para especificar qué clases pueden acceder a los datos privados de los miembros de una clase. Es importante tener en cuenta que una función de friend no es un miembro de la clase, pero se le otorga permiso para acceder a algunos o todos los datos y funciones privados de esa clase.

Las clases amigas a menudo se usan para proporcionar funciones auxiliares para otras clases. Las funciones friend a veces se denominan funciones no miembro, ya que no son miembros de la clase.

En C++, si desea sobrecargar un operador utilizando la función friend, debe declararlo como friend. La declaración friend le dice al compilador que esta función se usará con otras funciones y objetos de la misma clase.

Sobrecargue el operador de suma usando la función friend en C++

En C++, el operador de suma sobrecargado es un operador binario que toma dos operandos del mismo tipo y realiza sumas sobre ellos.

Los siguientes pasos se usan para sobrecargar el operador de suma en C++ usando la función friend:

  • Defina una clase de plantilla, que pueda llamar a operador+() en la clase derivada.
  • Defina una función friend que sobrecargue el operador de suma en la clase derivada.
  • Defina los operadores sobrecargados para sumar en la clase de plantilla.
  • Defina un operador sobrecargado para la operación de suma en la clase derivada llamada por la función friend definida en el paso 2.

Código de ejemplo:

#include <iostream>
class Demo {
 private:
  int e_demo{};

 public:
  Demo(int demo) : e_demo{demo} {}
  friend Demo operator+(const Demo& x1, const Demo& x2);
  int getDemo() const { return e_demo; }
};
Demo operator+(const Demo& x1, const Demo& x2) {
  return Demo{x1.e_demo + x2.e_demo};
}
int main() {
  Demo demo1{5};
  Demo demo2{5};
  Demo demoSum{demo1 + demo2};
  std::cout << "Total Count is " << demoSum.getDemo();
  return 0;
}

Producción :

Total Count is 10

Haga clic aquí para ver la demostración en vivo del código mencionado anteriormente.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook

Artículo relacionado - C++ Operator