English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C++ Surcharge d'opérateur et surcharge de fonction
Les opérateurs unaires ne s'appliquent qu'à un opérande, voici un exemple d'opérateur unaire :
Opérateur d'incrémentation ( ++ ) et l'opérateur de décrémentation ( -- )
Opérateur unaire de soustraction, c'est-à-dire le signe négatif ( - )
Opérateur de négation logique ( ! )
Les opérateurs unaires apparaissent généralement à gauche de l'objet sur lequel ils opèrent, par exemple !obj,-obj et ++obj, mais elles peuvent parfois être utilisées comme suffixes, par exemple obj++ ou obj--.
L'exemple suivant montre comment surcharger l'opérateur unaire de soustraction ( - )
#include <iostream> using namespace std; class Distance { private: int feet; // 0 à l'infini int inches; // 0 à 12 public: // Constructeurs nécessaires Distance() feet = 0; inches = 0; } Distance(int f, int i){ feet = f; inches = i; } // Méthode d'affichage de la distance void displayDistance() { cout << "F: " << feet << " I:" << inches << endl; } // Surcharge de l'opérateur de signe négatif ( - ) Opérateur de distance- () { feet = -feet; inches = -inches; return Distance(feet, inches); } }; int main() { Distance D1(11, 10), D2(-5, 11); -D1; // Prendre la valeur opposée D1.displayDistance(); // Distance D1 -D2; // Prendre la valeur opposée D2.displayDistance(); // Distance D2 return 0; }
Lorsque le code suivant est compilé et exécuté, il produit les résultats suivants :
F: -11 I:-10 F: 5 I:-11
J'espère que cet exemple vous aidera à mieux comprendre le concept de surcharge d'opérateur unilatéral, de la même manière, vous pouvez essayer de surcharger l'opérateur logique non ( ! ).