实现复数类中的运算重载
2014-04-22 14:34
330 查看
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:崔俊
* 完成日期:2014年 4 月 22日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:无
* 问题描述:
* 程序输出:
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
using namespace std;
class Complex
{
public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r; imag=i;}
Complex operator+(double x);
Complex operator-(double x);
friend Complex operator+(double x,Complex c);
friend Complex operator-(double x,Complex c);
void display();
double geta()
{
return real;
}
double getb()
{
return imag;
}
private:
double real;
double imag;
};
//下面定义成员函数
void Complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
Complex Complex::operator+(double x)
{
return Complex(x+real,imag);
}
Complex Complex::operator-(double x)
{
return Complex(real-x,imag);
}
int main()
{
Complex c1(3,4),c2;
double d=4;
cout<<"c1+d"<<endl;
c2=c1+d;
c2.display();
cout<<"c1-d"<<endl;
c2=c1-d;
c2.display();
cout<<"d+c1"<<endl;
c2=d+c1;
c2.display();
cout<<"d-c1"<<endl;
c2=d-c1;
c2.display();
return 0;
}
Complex operator+(double x,Complex c)
{
return Complex(x+c.real,c.imag);
}
Complex operator-(double x,Complex c)
{
return Complex(x-c.real,c.imag);
}
* 程序的版权和版本声明部分:
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:崔俊
* 完成日期:2014年 4 月 22日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:无
* 问题描述:
* 程序输出:
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
using namespace std;
class Complex
{
public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r; imag=i;}
Complex operator+(double x);
Complex operator-(double x);
friend Complex operator+(double x,Complex c);
friend Complex operator-(double x,Complex c);
void display();
double geta()
{
return real;
}
double getb()
{
return imag;
}
private:
double real;
double imag;
};
//下面定义成员函数
void Complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
Complex Complex::operator+(double x)
{
return Complex(x+real,imag);
}
Complex Complex::operator-(double x)
{
return Complex(real-x,imag);
}
int main()
{
Complex c1(3,4),c2;
double d=4;
cout<<"c1+d"<<endl;
c2=c1+d;
c2.display();
cout<<"c1-d"<<endl;
c2=c1-d;
c2.display();
cout<<"d+c1"<<endl;
c2=d+c1;
c2.display();
cout<<"d-c1"<<endl;
c2=d-c1;
c2.display();
return 0;
}
Complex operator+(double x,Complex c)
{
return Complex(x+c.real,c.imag);
}
Complex operator-(double x,Complex c)
{
return Complex(x-c.real,c.imag);
}
相关文章推荐
- Android之Service与IntentService的比较
- sqlserver换版本之后的操蛋事情备忘
- CIL中间语言浅谈
- win764位 vs2003 下解决无法附件到进程的调试问题
- 为App签名(为apk签名)
- Android: JAVA和C# 3DES加密解密
- spring MVC笔记4——文件上传
- [NHibernate] 入门实例 NHibernate 3.3 GA + VS2010 +MySQL
- css清除浮动的几种方法以及对应规范说明
- 使用powerDesign15导出数据库的的物理模型
- Spiral Matrix II
- Unable to resolve target 'android-XX'
- 苹果和谷歌提供独家游戏开发者协议
- assert函数用法总结
- LINQ标准查询操作符(四) —AsEnumerable,Cast,OfType,ToArray,ToDictionary,ToList,ToLookup,First,Last,ElementAt
- Plug and Play
- Android UI开发详解之模板控件的复用
- Leetcode_Remove Duplicates from Sorted Array II
- SQL大数据量查询的优化
- Android SQLite数据库操作实例