C++运算符重载 成员函数与友元函数详解_C语言教程-查字典教程网
C++运算符重载 成员函数与友元函数详解
C++运算符重载 成员函数与友元函数详解
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:#includeusingnamespacestd;classA{intx,y;public:A(intxx,intyy)...

复制代码 代码如下:

#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语言学习
    热门C语言学习
    编程开发子分类