运算符重载实例

原创 2012年03月25日 15:33:25
//定义复数类的运算符重载
#include <iostream>
using namespace std;
class Complex
{
public:
	Complex() { real=0; imag=0; }
	Complex ( double r, double i )  { real=r; imag=i; }
    Complex operator + (Complex &c1);
    Complex operator - (Complex &c1);
	//Complex operator * (Complex &c1);
	//Complex operator / (Complex &c1);
	void display();
private:
	double real;
	double imag;
};
Complex Complex::operator + (Complex &c1)
{
	Complex c;
	c.real=real+c1.real;
	c.imag=imag+c1.imag;
	return c;
}
Complex Complex::operator - (Complex &c1)
{
	Complex c;
	c.real=real-c1.real;
	c.imag=imag-c1.imag;
	return c;
}
void Complex::display()
{
	cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main()
{
	Complex c(3,4),c1(2,5),c2,c3;
	c2=c+c1;
	c3=c-c1;
	cout<<"c+c1=";
	c2.display();
	cout<<"c-c1=";
	c3.display();
	return 0;
}

运算符重载分析与实例

运算符重载时的几个关键点: 1. 首先,运算符重载不会改变运算符的优先级和结合性。 2. 运算符的重载不能改变运算符的运算对象数。因此,重载函数的形参个数(包括成员函数的隐式指针this)...
  • hyhyl1990
  • hyhyl1990
  • 2012年09月08日 21:37
  • 1090

C#运算符重载例子

一个复数类的加减法 class Complex { public double Real { get; s...
  • h82258652
  • h82258652
  • 2013年07月20日 22:49
  • 639

运算符重载的一个例子--有理数加减乘除

题目要求:进行有理数的四则运算重载 实现如下这样的运算:               1/8 + 7/8 = 1;               1/8 - 7/8 = -3/4;       ...
  • huangchijun11
  • huangchijun11
  • 2017年06月14日 15:42
  • 513

运算符重载实例

#include #include using namespace std; struct Point{ int x,y; Point(int x=0,int y=0):x(x),y(...
  • qq_33901573
  • qq_33901573
  • 2016年05月20日 18:56
  • 100

才知道java竟然没有运算符重载

写复数类的乘法和除法真的是要写死人了。。。public class Complex { private Fraction realPart; private Fraction image...
  • liaotl10
  • liaotl10
  • 2017年07月11日 22:16
  • 844

Python——运算符重载(2)

本文继续介绍运算符重载。详细介绍了属性引用:__getattr__和__setattr__、字符串表达形式:__repr__和__str__、右侧加法和原处加法:__radd__和__iadd__、C...
  • ggGavin
  • ggGavin
  • 2016年02月23日 20:05
  • 2706

C++运算符重载例子代码

#include using namespace std; class Time { private: int h,m,s; public: Time(); Time(in...
  • qq_18860653
  • qq_18860653
  • 2017年02月08日 17:32
  • 568

c加加+-*/前置++后置++运算符重载

运算符重载注意点: 1.算术和关系操作符返回的是一个左值或右值,而不是一个引用 2.赋值操作符一定要定义为成员函数如“=” 3.一般而言,赋值操作符和复合赋值操作符应返回左操作数的引用如"="和''+...
  • littleprince1
  • littleprince1
  • 2017年04月18日 16:46
  • 806

C++基础篇--运算符重载

运算符重载没有多高深复杂,但牵扯到的相关概念和语法变化不少,如果这块基石不牢固,读复杂C++代码时就只有雾里看花的份。 运算符重载由来     C/C++中所有运算符(+-*/等)默认只用于基本数据类...
  • ipmux
  • ipmux
  • 2015年09月01日 15:04
  • 977

关于c++的运算符重载那些事

搞c++有一段时间了,今天突然要重载一个运算符,发现自己有点忘了,遂查查资料做一下c++运算符重载的小总结。 一、何为运算符重载 运算符的重载是c++语言特有的,java什么的是没有运算符重载的,所以...
  • uestclr
  • uestclr
  • 2016年04月16日 21:59
  • 3259
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:运算符重载实例
举报原因:
原因补充:

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