第十二周项目2:实现复数类中的运算符重载(2)
2016-05-18 19:26
387 查看
问题及代码:
运行结果:
知识点总结:
友元函数有一点点淡忘了,用的时候错误百出,然后又看了老师给的例子才做对,这说明学习的知识要经常复习才能真正属于自己。
学习心得:
友元函数实现运算符重载函数需要两个参数。
/*Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:崔青青 *完成日期:2016年5月18日 *版 本 号:v1.0 *问题描述:实现复数类中的运算符重载。 *输入描述: *输出描述: */ #include <iostream> using namespace std; class Complex { public: Complex(){real=0;image=0;} Complex(double r,double i) { real=r; image=i; } friend Complex operator+(const Complex &c1,const Complex &c2); friend Complex operator-(const Complex &c1,const Complex &c2); friend Complex operator*(const Complex &c1,const Complex &c2); friend Complex operator/(const Complex &c1,const Complex &c2); void display(); private: double real; double image; }; Complex operator+(const Complex &c1,const Complex &c2) { Complex c; c.real=c1.real+c2.real; c.image=c1.image+c2.image; return c; } Complex operator-(const Complex &c1,const Complex &c2) { Complex c; c.real=c1.real-c2.real; c.image=c1.image-c2.image; return c; } Complex operator*(const Complex &c1,const Complex &c2) { Complex c; c.real=c1.real*c2.real; c.image=c1.image*c2.image; return c; } Complex operator/(const Complex &c1,const Complex &c2) { Complex c; c.real=c1.real/c2.real; c.image=c1.image/c2.image; return c; } void Complex::display() { cout<<"("<<real<<" "<<image<<")"<<endl; } int main() { Complex c1(3,4),c2(5,-10),c3; cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); c3=c1+c2; cout<<"c1+c2="; c3.display(); c3=c1-c2; cout<<"c1-c2="; c3.display(); c3=c1*c2; cout<<"c1*c2="; c3.display(); c3=c1/c2; cout<<"c1/c2="; c3.display(); return 0; }
运行结果:
知识点总结:
友元函数有一点点淡忘了,用的时候错误百出,然后又看了老师给的例子才做对,这说明学习的知识要经常复习才能真正属于自己。
学习心得:
友元函数实现运算符重载函数需要两个参数。