源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++运算符重载 成员函数与友元函数详解

  • 时间:2021-09-20 15:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++运算符重载 成员函数与友元函数详解
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; class A {     int x,y;     public:     A(int xx,int yy):x(xx),y(yy){}     A(){x=0;y=0;}     A operator+(const A&b) //不加const限定,也可以     { return A(x+b.x,y+b.y); }     A operator-()     { return A(-x,-y); }     void show()     {cout<<"x="<<x<<" y="<<y<<endl;} }; void test_A() {     A a1(2008,512),a2(2013,420),a3;     a3=a1+a2; //调用操作符重载函数: a1.oprator +(a2)     a3.show();     a1=-a1; //调用操作符重载函数: a1.operator -()     a1.show(); } /*********************** 执行结果 x=4021 y=93 x=-2008 y=-512 **********************/ class B {     int x,y;     public:         B(int xx,int yy):x(xx),y(yy){}         B(){x=0;y=0;}         friend B operator+(const B&a,const B&b);         friend B operator-(const B&a);         void show()         {cout<<"x="<<x<<" y="<<y<<endl;}; }; B operator+(const B&a,const B&b) {return B(a.x+b.x,a.y+b.y);} B operator-(const B&a) {return B(-a.x,-a.y);} /*************************** class B {     int x,y;     public:         B(int xx,int yy):x(xx),y(yy){}         B(){x=0;y=0;}         friend B operator+(const B&a,const B&b)                 {return B(a.x+b.x,a.y+b.y);}         friend B operator-(const B&a)             {return B(-a.x,-a.y);}         void show()         {cout<<"x="<<x<<" y="<<y<<endl;}; } ********************************/ int main() {     B B1(1991,1105),B2(2013,62),B3;     B3=B1+B2; //调用操作符重载函数: a1.oprator +(a2)     B3.show();     B1=-B1; //调用操作符重载函数: a1.operator +()     B1.show(); } /**************************** 运行结果: x=4004 y=1167 x=-1991 y=-1105 Process returned 0 (0x0)   execution time : 0.021 s Press any key to continue. *****************************/
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; class A {     int x,y;     public:     A(int xx,int yy):x(xx),y(yy){}     A(){x=0;y=0;}     A operator+(const A&b) //不加const限定,也可以     { return A(x+b.x,y+b.y); }     A operator-()     { return A(-x,-y); }     void show()     {cout<<"x="<<x<<" y="<<y<<endl;} }; void test_A() {     A a1(2008,512),a2(2013,420),a3;     a3=a1+a2; //调用操作符重载函数: a1.oprator +(a2)     a3.show();     a1=-a1; //调用操作符重载函数: a1.operator -()     a1.show(); } /*********************** 执行结果 x=4021 y=93 x=-2008 y=-512 **********************/ class B {     int x,y;     public:         B(int xx,int yy):x(xx),y(yy){}         B(){x=0;y=0;}         friend B operator+(const B&a,const B&b);         friend B operator-(const B&a);         void show()         {cout<<"x="<<x<<" y="<<y<<endl;}; }; B operator+(const B&a,const B&b) {return B(a.x+b.x,a.y+b.y);} B operator-(const B&a) {return B(-a.x,-a.y);} /*************************** class B {     int x,y;     public:         B(int xx,int yy):x(xx),y(yy){}         B(){x=0;y=0;}         friend B operator+(const B&a,const B&b)                 {return B(a.x+b.x,a.y+b.y);}         friend B operator-(const B&a)             {return B(-a.x,-a.y);}         void show()         {cout<<"x="<<x<<" y="<<y<<endl;}; } ********************************/ int main() {     B B1(1991,1105),B2(2013,62),B3;     B3=B1+B2; //调用操作符重载函数: a1.oprator +(a2)     B3.show();     B1=-B1; //调用操作符重载函数: a1.operator +()     B1.show(); } /**************************** 运行结果: x=4004 y=1167 x=-1991 y=-1105 Process returned 0 (0x0)   execution time : 0.021 s Press any key to continue. *****************************/
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部