Computer >> Máy Tính >  >> Lập trình >> C ++

Nạp chồng toán tử một ngôi trong C ++ là gì?


Các toán tử đơn lẻ hoạt động trên một đại lượng và sau đây là các mẫu của các toán tử đơn lẻ - - Các toán tử tăng () và giảm (-). Trình biên dịch phân biệt giữa các ý nghĩa khác nhau của một toán tử bằng cách kiểm tra các loại toán hạng của nó.

Toán tử một ngôi hoạt động trên một toán hạng đơn và sau đây là các ví dụ về toán tử một ngôi -

  • Toán tử tăng (++) và giảm (-).
  • Toán tử trừ (-) một bậc.
  • Toán tử logic not (!).

Các toán tử một ngôi hoạt động trên đối tượng mà chúng được gọi và thông thường, toán tử này xuất hiện ở phía bên trái của đối tượng, như trong! Obj, -obj và ++ obj nhưng đôi khi chúng có thể được sử dụng làm hậu tố cũng như obj ++ hoặc obj--.

Ví dụ sau giải thích cách toán tử bang (!) có thể bị nạp chồng khi sử dụng tiền tố -

Ví dụ

#include <iostream>
using namespace std;

class Distance {
   private:
   int feet;      // 0 to infinite
   int inches;    // 0 to 12
   public:
   
   // Constructor
   Distance(int f, int i) {
      feet = f;
      inches = i;
   }
   // method to display distance
   void display() {
      cout << "F: " << feet << " I:" << inches <<endl;
   }
   // overloaded bang(!) operator
   Distance operator!() {
      feet = -feet;
      inches = -inches;
      return Distance(feet, inches);
   }
};

int main() {
   Distance D1(3, 4), D2(-1, 10);
   !D1;
   D1.display();    // display D1
   !D2;             // apply negation
   D2.display();    // display D2
   return 0;
}

Đầu ra

Điều này sẽ đưa ra kết quả -

F: -3 I:-4
F: 1 I:-10