uacs2024

导航

C++ 函数调用运算符 () 重载

函数调用运算符 () 可以被重载用于类的对象。当重载 () 时,您不是创造了一种新的调用函数的方式,相反地,这是创建一个可以传递任意数目参数的运算符函数。

 1 #include <iostream>
 2 using namespace std;
 3 class Distance
 4 {
 5    private:
 6       int feet;             // 0 到无穷
 7       int inches;           // 0 到 12
 8    public:
 9       // 所需的构造函数
10       Distance(){
11          feet = 0;
12          inches = 0;
13       }
14       Distance(int f, int i){
15          feet = f;
16          inches = i;
17       }
18       // 重载函数调用运算符
19       Distance operator()(int a, int b, int c)
20       {
21          Distance D;
22          // 进行随机计算
23          D.feet = a + c + 10;
24          D.inches = b + c + 100 ;
25          return D;
26       }
27       // 显示距离的方法
28       void displayDistance()
29       {
30          cout << "F: " << feet <<  " I:" <<  inches << endl;
31       }
32 };
33 int main()
34 {
35    Distance D1(11, 10), D2;
36 
37    cout << "First Distance : "; 
38    D1.displayDistance();
39 
40    D2 = D1(10, 10, 10); // invoke operator()
41    cout << "Second Distance :"; 
42    D2.displayDistance();
43 
44    return 0;
45 }

结果

First Distance : F: 11 I:10
Second Distance :F: 30 I:120

 

posted on 2024-03-03 16:35  ᶜʸᵃⁿ  阅读(4)  评论(0编辑  收藏  举报