展会信息港展会大全

C++运算符重载 成员函数与友元函数详解
来源:互联网   发布日期:2016-01-19 13:03:45   浏览:2267次  

导读:以下是对C++运算符重载 成员函数与友元函数进行了介绍,需要的朋友可以过来参考下复制代码 代码如下: includeiostreamusing namespace std;class A{ int x,y; public: A(int xx,int yy):x(xx ...

以下是对C++运算符重载 成员函数与友元函数进行了介绍,需要的朋友可以过来参考下

复制代码 代码如下:

#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.

*****************************/

复制代码 代码如下:

#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.

*****************************/

赞助本站

人工智能实验室

相关热词: 成员函数 友元函数 C++

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港