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

Quá tải toán tử trừ một bậc trong C ++?


Từ khóa toán tử khai báo một hàm xác định ý nghĩa của ký hiệu toán tử khi á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ó.

Các 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ử dấu trừ (-) có thể được nạp chồng khi sử dụng tiền tố -

Ví dụ

#include <iostream>
using namespace std;
class Distance {
   private:
   int feet;
   int inches;
   public:
   // Constructor
   Distance(int f, int i) {
      feet = f;
      inches = i;
   }
   // method to display distance
   void display() {
      cout << "F: " << feet << " I:" << inches <<endl;
   }
   // overloaded minus(-) operator
   Distance operator-() {
      feet = -feet;
      inches = -inches;
      return Distance(feet, inches);
   }
};
int main() {
   Distance D1(3, 4), D2(-1, 10);
   !D1;
   D1.display();
   !D2;
   D2.display();
   return 0;
}

Đầu ra

Điều này sẽ cung cấp đầu ra -

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