1 #define _CRT_SECURE_NO_WARNINGS 2 #include <iostream> 3 using namespace std; 4 5 class box 6 { 7 private: 8 int x; 9 int y; 10 int z; 11 12 13 public: 14 box() :x(10), y(20), z(30) 15 { 16 17 } 18 19 friend box operator +(const box &box1, const box &box2); 20 friend box operator +(const box &box1, int num); 21 friend ostream & operator << (ostream &, const box &box1); 22 friend istream &operator >> (istream &, box &box1); 23 24 void show() 25 { 26 cout << x << y << z << endl; 27 } 28 29 }; 30 31 //外部重载,没有this指针隐含对象 32 box operator +(const box &box1, const box &box2) 33 { 34 box tmp; 35 tmp.x = box1.x + box2.x; 36 tmp.y = box1.y + box2.y; 37 tmp.z = box1.z + box2.z; 38 return tmp; 39 } 40 41 42 box operator +(const box &box1, int num) 43 { 44 box tmp; 45 tmp.x = box1.x + num; 46 return tmp; 47 } 48 49 50 //重载流运算符,输入一个引用,返回一个引用 51 ostream & operator << (ostream &,const box &box1) 52 { 53 return cout << box1.x << box1.y << box1.z << endl; 54 } 55 56 istream &operator >> (istream &, box &box1) 57 { 58 return cin >> box1.x >> box1.y >> box1.z ; 59 } 60 61 void main() 62 { 63 box box1; 64 box box2; 65 box box3 = box1 + box2; 66 box box4 = box1 + 20; 67 /*box4.show();*/ 68 cin >> box1; 69 cout << box1; 70 cin.get(); 71 }
原文地址:https://www.cnblogs.com/xiaochi/p/8596369.html
时间: 2024-10-12 03:35:39