uacs2024

导航

C++ 一元运算符重载

一元运算符只对一个操作数进行操作,下面是一元运算符的实例:

一元运算符通常出现在它们所操作的对象的左边,比如 !obj、-obj 和 ++obj,但有时它们也可以作为后缀,比如 obj++ 或 obj--。

下面的实例演示了如何重载一元减运算符( - )。

 1 #include <iostream>
 2 using namespace std;
 3  
 4 class Distance
 5 {
 6    private:
 7       int feet;             // 0 到无穷
 8       int inches;           // 0 到 12
 9    public:
10       // 所需的构造函数
11       Distance(){
12          feet = 0;
13          inches = 0;
14       }
15       Distance(int f, int i){
16          feet = f;
17          inches = i;
18       }
19       // 显示距离的方法
20       void displayDistance()
21       {
22          cout << "F: " << feet << " I:" << inches <<endl;
23       }
24       // 重载负运算符( - )
25       Distance operator- ()  
26       {
27          feet = -feet;
28          inches = -inches;
29          return Distance(feet, inches);   //想想这里为什么是这样
30       }
31 };
32 int main()
33 {
34    Distance D1(11, 10), D2(-5, 11);
35  
36    -D1;                     // 取相反数
37    D1.displayDistance();    // 距离 D1
38  
39    -D2;                     // 取相反数
40    D2.displayDistance();    // 距离 D2
41  
42    return 0;
43 }

结果

F: -11 I:-10
F: 5 I:-11

 

posted on 2024-03-02 20:57  ᶜʸᵃⁿ  阅读(5)  评论(0编辑  收藏  举报