重载函数在类外
来源:互联网 发布:阿尔德里奇身体数据 编辑:程序博客网 时间:2024/06/05 11:56
二.重载符号的函数既不是友元又不是成员,怎么办呢?
定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。
Input
两个复数
Output
复数之和
Sample Input
3 4
5 -10
Sample Output
(8.00,-6.00i)
#include <iostream>#include <iomanip>using namespace std;class Complex{public: Complex();//无参构造函数 Complex(double r,double i);//有参构造函数//有构造函数就必有初始化,不在类内就在类外,一定要有这个意识! double get_real(); double get_imag();//用了两个函数 void display();private: double real; double imag;};Complex::Complex(){real=0;imag=0;}Complex::Complex(double r,double i){real=r;imag=i;}//初始化,这个带参的初始化要训练自己用参数表的形式【Complex::Complex(double r,double i):real(r),imag(i){}】,不要写错了,并且牢记位置double Complex::get_real(){ return real;}double Complex::get_imag(){ return imag;}Complex operator +(Complex&c1,Complex&c2){ Complex temp(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag()); return temp;}//注意两点:一:函数类型是Complex;第二:函数名叫做“operator +”;在这个函数里调用了基类中的两个函数。void Complex::display(){ cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){ double real,imag; cin>>real>>imag; Complex c1(real,imag); cin>>real>>imag; Complex c2(real,imag); Complex c3=c1+c2; cout<<setiosflags(ios::fixed); cout<<setprecision(2); c3.display(); return 0;}
0 0
- 重载函数在类外
- C++函数重载(5) - 重载函数在类继承中的行为
- 在父类和子类中定义重载函数
- 在父类和子类中定义重载函数 心得
- Python 类,函数重载
- 类中的函数重载
- 函数重载在多态性中的应用。
- C++函数重载在MFC中的体现
- 重载函数为什么只在C++下
- 全局重载函数和类范围内重载函数
- C++类的函数重载
- 重载函数实现时间类
- 函数重载实现Time类
- 函数重载实现Time类
- 类重载全局函数指针
- 29-类中的函数重载
- C++中函数占位符在函数重载中的作用
- 在类中const成员函数和非const成员函数可以作为重载成员函数同时存在
- WIN8.1安装MBR磁盘无法安装问题
- Shell遍历文件内容
- Swift 枚举
- ReportStudio入门教程(四十) - 创建分段
- 深入struts2.0(五)--Dispatcher类
- 重载函数在类外
- 视图控制器
- C#人事管理系统开发(2)数据库设计
- ffmpeg 常用 命令随手记
- goagent 403\404 error 解决 (20141117新增v3.2.2正式版)
- 匈牙利算法的DFS作法
- 寻找数组中的第i大的元素
- win8.1开发之旅(一):我看windows应用
- 自定义ios7标题栏和状态栏