0
点赞
收藏
分享

微信扫一扫

c++ 重载运算符

Java旺 2022-07-27 阅读 62


要点
1 operator关键词 修饰运算符
2 跟函数重载类比

// 修饰 运算符 ()

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 Distance operator()(int a, int b, int c)
21 {
22 Distance D;
23 // 进行随机计算
24 D.feet = a + c + 10;
25 D.inches = b + c + 100 ;
26 return D;
27 }
28 // 显示距离的方法
29 void displayDistance()
30 {
31 cout << "F: " << feet << " I:" << inches << endl;
32 }
33
34 };
35 int main()
36 {
37 Distance D1(11, 10), D2;
38
39 cout << "First Distance : ";
40 D1.displayDistance();
41
42 D2 = D1(10, 10, 10); // invoke operator()
43 cout << "Second Distance :";
44 D2.displayDistance();
45
46 return 0;
47 }

// 修饰运算符 +

1 #include <iostream>
2 using namespace std;
3
4 class CVector {
5 public:
6 int x,y;
7 CVector () {};
8 CVector (int,int);
9 CVector operator + (CVector);
10 };
11
12 CVector::CVector (int a, int b) {
13 x = a;
14 y = b;
15 }
16
17 CVector CVector::operator+ (CVector param) {
18 CVector temp;
19 temp.x = x + param.x;
20 temp.y = y + param.y;
21 return (temp);
22 }
23
24 int main () {
25 CVector a (3,1);
26 CVector b (1,2);
27 CVector c;
28 c = a + b;
29 cout << c.x << "," << c.y;
30 return 0;
31 }


举报

相关推荐

0 条评论