重载()运算符

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 Distance()
11 {
12 feet = 0;
13 inches = 0;
14 }
15 Distance(int f, int i)
16 {
17 feet = f;
18 inches = i;
19 }
20
21 // 重载函数调用运算符
22 Distance operator()(int a, int b, int c)
23 {
24 Distance D;
25 // 进行随机计算
26 D.feet = a + c + 10;
27 D.inches = b + c + 100;
28 return D;
29 }
30
31 // 显示距离的方法
32 void displayDistance()
33 {
34 cout << "F: " << feet << " I:" << inches << endl;
35 }
36 };
37
38 int main()
39 {
40 Distance D1(11, 10), D2;
41
42 cout << "First Distance : ";
43 D1.displayDistance();
44
45 D2 = D1(10, 10, 10); // invoke operator()
46 cout << "Second Distance :";
47 D2.displayDistance();
48
49 return 0;
50 }
View Code