面向对象复数类(class Complex) 的重载运算符 一元二元的实现与使用
来源:互联网 发布:python简介 编辑:程序博客网 时间:2024/05/22 16:54
面向对象复数类(class Complex)
一.
实现与测试使用总共分为两个部分_(:зゝ∠)_,头文件与主函数 ,重载操作符与类成员函数有注释声明
唯一的注意点在于一元加法操作符返回的是类引用 而二元加法操作符返回的是类对象
其中二元加法操作符重载了三种参数情况
运算部分用到了友元函数
主函数测试部分自行按需要去掉注释
仅供参考,随意浏览_(:зゝ∠)_
近期补完完整版复数类 重载运算符与成员函数
头文件实现部分:
#ifndef _Complex_#define _Complex_#include <cmath>#include <iostream>using namespace std;#include <cstring>#endif//_Complex_class Complex;Complex& _doapl (Complex *,Complex&);Complex& _doapl (Complex *,Complex&);class Complex {public:Complex (double tr=0,double ti=0){re=tr;im=ti;} Complex& operator *= ( const Complex &); Complex& operator += ( const Complex &); void Put () {cout<<re<<"+"<<im<<"i"<<endl;} void Set (double ,double); double real() const { return re;} double imag() const { return im;} ~Complex() { cout<<"Destroying class Complex"<<endl; }private:double re;double im;friend Complex& _doapl (Complex*,const Complex& r ); friend Complex& _doamu (Complex*,const Complex& r );};// Setinline voidComplex::Set(double tr,double ti){re=tr;im=ti;}// friend functioninline Complex&_doapl (Complex* ths, const Complex& r){ ths->re += r.re; ths->im += r.im; return *ths;}inline Complex&_doamu (Complex* ths, const Complex& r){Complex* t;t=new Complex;t->re=ths->re;t->im=ths->im;ths->re=t->re*r.re - t->im*r.im;ths->im=t->im*r.re + t->re*r.im;delete t;return *ths;}// operator += *=inline Complex&Complex::operator += (const Complex& r){ return _doapl (this, r);}inline Complex&Complex::operator *= (const Complex& r){ return _doamu (this ,r);}// return re,im;inline doubleimag (const Complex& x){ return x.imag ();}inline doublereal (const Complex& x){ return x.real ();}// Plus 3 modeinline Complexoperator + (const Complex& x, const Complex& y){ return Complex (real (x) + real (y), imag (x) + imag (y));}inline Complexoperator + (const Complex& x, double y){ return Complex (real (x) + y, imag (x));}inline Complexoperator + (double x, const Complex& y){ return Complex (x + real (y), imag (y));}
主函数测试部分:
#include <cstring>#include <cstdio>#include <iostream>using namespace std;#include "Complex.h"int main (){// referencesComplex c1(2,1);cout<<"Put c1"<<endl;c1.Put();cout<<endl;Complex c2(4,3);cout<<"Put c2"<<endl;c2.Put();cout<<endl;Complex c3;cout<<"Put c3"<<endl;c3.Put();cout<<endl;/*//Function setcout<<"after Set , Put c1"<<endl;c1.Set(3,2);c1.Put();*//* c1+=c2;cout<<"after Plu , c1"<<endl;c1.Put();cout<<endl;*///operator *=/*c1*=c2;cout<<"after Mut, c1"<<endl;c1.Put();cout<<endl;*//*//operator Plus c+ccout<<"c1+c2=";(c1+c2).Put();cout<<endl;//operator Plus c+rcout<<"c1+2=";(c1+2).Put();cout<<endl;//operatro Plus r+ccout<<"3+c1=";(3+c1).Put();cout<<endl;*/system("pause");return 0;}
0 0
- 面向对象复数类(class Complex) 的重载运算符 一元二元的实现与使用
- 复数运算符的重载与模版类complex的对比
- C#运算符的重载一元二元运算符
- 定义一个复数类complex重载运算符+ - * /使之能用于复数的加减乘除。
- 实现复数类的运算符重载
- 实现复数类的运算符重载
- 重载一元、二元运算符
- 使用运算符重载实现复数的加法运算
- 使用运算符重载实现复数的四则运算
- Complex类中的<<运算符的重载
- Complex类运算符的重载
- C++实现的复数运算符重载
- 实现复数类的运算重载
- C++实现输入输出运算符重载、友元函数和成员函数实现复数类Complex
- 【C++】操作符重载及实现简单的复数类Complex
- C++操作符重载及实现简单的复数类Complex
- 定义一个复数类Complex 重载运算符 第二题
- 运算符重载(复数类(Complex))
- 平方和
- 2015.9.17 第十一堂 内存管理(下) [注:时间为学习时间,非原时间]
- 背包DP的标准代码模板
- UI_模态跳转
- 更改Oracle数据库的编码格式,解决导入时ORA-12899错误
- 面向对象复数类(class Complex) 的重载运算符 一元二元的实现与使用
- Oracle 序列 触发器的使用
- Android多媒体之调用摄像头和从本地相册中选择图片
- 数据结构与算法的笔记(一)
- KVO初级
- 文本输入控件 UITextField
- winform之几个对话窗 的使用
- LeetCode_OJ【23】Merge k Sorted Lists
- 喜马拉雅~小程序代码