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