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

Ghi đè toán tử một ngôi + trong C ++


Từ khóa toán tử khai báo một hàm chỉ định ký hiệu toán tử có nghĩa là gì đã từng được áp dụng cho các thể hiện của một lớp. điều này cung cấp cho toán tử nhiều hơn một ý nghĩa hoặc "quá tải" nó. 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 (!).

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, -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ử dấu cộng (+) 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 plus(+) operator
   Distance operator+() {
      if(inches == 11) {
         inches = 0;
         feet = feet + 1;
      } else {
         inches = inches + 1;
      }
      return Distance(feet, inches);
   }
};

int main() {
   Distance D1(3, 4), D2(1, 11);

   +D1;
   D1.display();

   +D2;
   D2.display();

   return 0;
}

Đầu ra

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

F: 3 I:5
F: 2 I:0