加法运算符重载

开发工具与关键技术: Visual Studio / C++
作者:何文涛
撰写时间:2019-6-15

运算符重载使得用户自定义的数据以一种更简洁的方式工作
运算符函数是成员函数或者是友员函数。

成员函数运算符重载定义方式为:
类型 类名 :: operator op (参数)
{
// 需要对该类的操作。
}

运算符被重载后,本来的性质并不会改变,只是定义多了一个相对特定的新
运算符。

重载运算符函数可以对运算符作出新的解释,但原有基本语义不变:
不改变运算符的优先级
不改变运算符的结合性
不改变运算符所需要的操作数
不能创建新的运算符

下面就举了一个重载运算符重载了加号运算符,
进行了复数的加法运算,代码实现如下:
类定义部分:
class Fidrs
{
public:
Fidrs(double r = 0, double i = 0)
{
R = r;
I = i;
}
friend Fidrs operator+ (const Fidrs & a1, const Fidrs & a2);
void shuchu()const; //输出
private:
double R, I;
};
这里定义了一个名为Fidrs的类,并构造了两个类型为double的变量
用来传输复数的实部和虚部。
定义了,一个友员函数重载运算符,重载的运算符是加号运算符,参数是引用,
所以是引用传递。
还定义多了一个方法来输出结果。

方法实现部分:
Fidrs operator+ (const Fidrs & a1, const Fidrs & a2)
{
double r = a1.R + a2.R;
double i = a1.I + a2.I;
return Fidrs(r, i);
}
void Fidrs::shuchu()const
{
cout << R << " + " << I << ‘i’ << endl;
}
代码实现,重载运算符的代码,传了两个值的引用过来,并且对两个传过来的引用
进行运算。
复数的加法运算,定义了浮点型的变量r,把两个复数的实部相加的值给了r
页定义了一个浮点型的i并把两个复数的虚部相加的值给了i。
返回了两个值的,r和i。
下面的方法输出了运算过后的复数。

主函数部分:
void main()
{
Fidrs a1(5, 2), a2(3, 7);
Fidrs d;
d = a1 + a2;
}
主函数这里定义了类Fidrs的对象,并且给了要传递的值。
再定义了对象d,并把两个复数加法运算过后的值给了d

输出结果:
加法运算符重载_第1张图片
复数加法是实部加实部虚部加虚部,i是复数的一个标识。

你可能感兴趣的:(加法运算符重载)