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
<iostream>
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:
Hi vọng ví dụ trên sẽ giúp bạn hiểu rõ khái niệm này và bạn có thể áp dụng cho nạp chồng toán tử (!) trong C++.