第十二周上机实践项目1(2):实现复数类中的运算符重载

原创 2016年06月02日 09:29:31
/*
 *Copyright(c) 2016.烟台大学计算机与控制工程学院
 *ALL rights  reserved.
 *文件名称:text11.cpp
 *作者:赵子琳
 *完成日期:2016年6月2日
 *问题描述:2.请用类的友元函数,而不是成员函数,再次完成上面提及的运算符的重载;
 */
#include <iostream>
using namespace std;
class Complex
{
public:
    Complex()
    {
        real=0;
        imag=0;
    }
    Complex(double r,double i)
    {
        real=r;
        imag=i;
    }
    friend Complex operator+(Complex &c1, Complex &c2);
    friend Complex operator-(Complex &c1, Complex &c2);
    friend Complex operator*(Complex &c1, Complex &c2);
    friend Complex operator/(Complex &c1, Complex &c2);
    void display();
private:
    double real;
    double imag;
};
//下面定义成员函数
Complex operator+(Complex &c1,Complex &c2) //重载运算符函数实现
{
    return Complex(c1.real+c2.real,c1.imag+c2.imag);//创建一个临时无名对象作为返回值
}
Complex operator-(Complex &c1,Complex &c2)
{
    return Complex(c1.real-c2.real,c1.imag-c2.imag);
}
Complex operator*(Complex &c1,Complex &c2)
{
    return Complex(c1.real*c2.real,c1.imag*c2.imag);
}
Complex operator/(Complex &c1,Complex &c2)
{
    return Complex(c1.real/c2.real,c1.imag/c2.imag);
}
void Complex::display()
{
    cout<<"("<<real<<","<<imag<<")"<<endl;
}
//下面定义用于测试的main()函数
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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:郭辉 *完成时间:2016年5月1...
  • guohui5011
  • guohui5011
  • 2016年05月19日 18:14
  • 2246

实现复数类中的运算符重载

/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved * 文件名称:score.cpp * 作 者:...
  • ydzhaolan
  • ydzhaolan
  • 2013年04月19日 11:14
  • 3418

运算符重载——重载+和-对复数类对象进行加减运算

1.题目: Problem Description 定义一个复数类,该类包含两个double型的数据成员代表复数的实部和虚部,包含构造函数(默认值为0,0),和显示函数,现重载运算符+和-,使其能对...
  • u010102829
  • u010102829
  • 2013年06月09日 13:14
  • 1128

C++实践参考——复数类中的运算符重载

返回:贺老师课程教学链接【项目1-实现复数类中的运算符重载】(1)请用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除class Complex { public: ...
  • sxhelijian
  • sxhelijian
  • 2015年04月21日 18:33
  • 2601

sdut 面向对象程序设计上机练习十(运算符重载)

面向对象程序设计上机练习十(运算符重载) Time Limit: 1000MS Memory limit: 65536K 题目描述 定义一个复数类Complex,重载运算符“+”...
  • u013634961
  • u013634961
  • 2014年10月18日 15:55
  • 1085

C++实践参考——分数类中的运算符重载

【项目1-分数类中的运算符重载】   (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。class CFraction { private: ...
  • sxhelijian
  • sxhelijian
  • 2016年05月19日 21:44
  • 3201

C++复数运算的运算符重载

C++提供了运算符重载,极大地方便了自定义类型之间的运算, 本文就最简单的复数运算实现让初学者体会运算符重载的作用以及运算符重载的原理。...
  • Raito__
  • Raito__
  • 2015年07月19日 09:07
  • 3158

使用运算符重载实现复数的四则运算

程序代码: #include using namespace std; class Complex { public: Complex( )//定义默认构造函数初始化复数 ...
  • u010105970
  • u010105970
  • 2014年06月11日 08:33
  • 1270

用类的友元函数,而不是成员函数定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:郭辉 *完成时间:2016年5月23日 *版...
  • guohui5011
  • guohui5011
  • 2016年05月23日 22:44
  • 1161

第十二周项目1-实现复数类中的运算符重载(1.3实现复数与实数相加减乘除)

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:...
  • angeljing521
  • angeljing521
  • 2016年05月12日 18:14
  • 1081
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第十二周上机实践项目1(2):实现复数类中的运算符重载
举报原因:
原因补充:

(最多只允许输入30个字)