Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Nạp chồng toán tử đơn ngả (unary operator) trong C++?


Toán tử đơn ngả thao tác trên một toán hạng. Ví dụ: toán tử tăng (++), giảm (--), âm unary (-), logic not (!). Trình biên dịch phân biệt nghĩa bằng kiểu toán hạng.

Toán tử đơn ngả thao tác trên đối tượng được gọi, thường xuất hiện bên trái đối tượng (!obj, -obj, ++obj) nhưng đôi khi dùng hậu tố (obj++, obj--).

Ví dụ nạp chồng toán tử ! cho tiền tố:

Ví dụ

#include <iostream>
using namespace std;
class Distance {
private:
    int feet;   // 0 đến vô hạn
    int inches; // 0 đến 12
public:
    Distance(int f, int i) { feet = f; inches = i; }
    void display() { cout << "F: " << feet << " I:" << inches << endl; }
    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

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