C++ Sobrecarga de operadores unarios

C++ 重载运算符和重载函数C++ Sobrecarga de operadores y funciones

Los operadores unarios operan solo sobre un operando. A continuación se muestra un ejemplo de operadores unarios:

Los operadores unarios generalmente aparecen a la izquierda del objeto sobre el que operan, como !obj, -obj y ++obj, pero a veces también pueden usarse como sufijo, como obj++ u obj--.

El siguiente ejemplo demuestra cómo sobrecargar el operador unario de resta (-).

Ejemplo

#include <iostream> using namespace std; class Distance { private: int feet; // 0 a infinito int inches; // 0 a 12 public: // Constructor requerido Distance(){ feet = 0; inches = 0; } Distance(int f, int i){ feet = f; inches = i; } // Método para mostrar la distancia void displayDistance() { cout << "F: " << feet << " I:" << inches <<endl; } // Sobrecargar el operador negativo (-) Distance operator- () { feet = -feet; inches = -inches; return Distance(feet, inches); } }; int main() { Distance D1(11, 10), D2(-5, 11); -D1; // Tomar el opuesto D1.displayDistance(); // Distancia D1 -D2; // Tomar el opuesto D2.displayDistance(); // Distancia D2 return 0; }

Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:

F: -11 I:-10
F: 5 I:-11

Esperamos que el ejemplo anterior le ayude a comprender mejor el concepto de sobrecarga de operadores unarios. De manera similar, puede intentar sobrecargar el operador de negación lógica (!).

C++ 重载运算符和重载函数C++ Sobrecarga de operadores y funciones

Otras extensiones