Toán tử một ngôi (unary) trong C++
Hoạt động trên một toán hạng đơn và dưới đây là một số ví dụ về toán tử một ngôi:
- Nạp chồng toán tử tăng (++) và toán tử giảm (--) trong C++.
- Toán tử một ngôi (-) trong C++
- Toán tử logic phủ định (!) trong 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ì toán tử này xuất hiện bên trái đối tượng, dạng như: !obj, -obj, và ++obj, nhưng đôi khi chúng có thể sử dụng như là hậu tố giống như obj++ hoặc obj--.
Ví dụ sau giải thích cách toán tử (-) có thể được nạp chồng với sự sử dụng tiền tố cũng như hậu tố.
#include using namespace std; class KhoangCach { private: int met; int centimet; public: // khai bao cac constructor KhoangCach(){ met = 0; centimet = 0; } KhoangCach(int m, int c){ met = m; centimet = c; } // phuong thuc de hien thi khoang cach void hienthiKC() { cout << "Khoang cach bang m la: " << met << endl; cout << "Khoang cach bang cm la: " << centimet << endl; cout << "\n\n================================\n\n" << endl; } // nap chong toan tu (-) KhoangCach operator- () { met = -met; centimet = -centimet; return KhoangCach(met, centimet); } }; int main() { KhoangCach K1(20, 6), K2(-6, 15); -K1; // ap dung su phu dinh K1.hienthiKC(); // hien thi K1 -K2; // ap dung su phu dinh K2.hienthiKC(); // hien thi K2 return 0; }
Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau: