运算符重载

原创 2015年07月08日 14:51:56

1、赋值运算符=

2、等于运算符==

3、加法运算符+

4、前向自加运算符++

5、后向自加运算符++

6、下标运算符[ ]

7、输入输出运算符<< 和 >>

8、转换运算符( )

9、实例代码

  1. #include <stdio.h>    
  2. #include <stdlib.h>  
  3. #include <iostream>  
  4. using namespace std;  
  5.   
  6. class A;  
  7. ostream& operator<<(ostream &out,A &a);  
  8. istream& operator>>(istream &in,A &a);  
  9.   
  10. class A{  
  11. private:  
  12.     int b;  
  13. public:  
  14.     A(){b=10;}  
  15.     ~A(){}  
  16.   
  17.     // 加法  
  18.     A operator+(A&a)      
  19.     {    
  20.         A temp;  
  21.         temp.b=b+a.b;  
  22.         return temp;  
  23.     }  
  24.   
  25.     // 加等于  
  26.     A& operator+=(A&a)      
  27.     {    
  28.         b+=a.b;  
  29.         return *this;  
  30.     }  
  31.   
  32.     // 赋值  
  33.     A& operator=(A&a)  
  34.     {  
  35.         if (a!=*this)  
  36.         {  
  37.             b=a.b;  
  38.         }  
  39.         return *this;  
  40.     }  
  41.   
  42.     //相等  
  43.     bool operator==(A&a)  
  44.     {  
  45.         return b==a.b;  
  46.     }  
  47.   
  48.     // 前向++  
  49.     A operator++()  
  50.     {  
  51.         b++;  
  52.         return *this;  
  53.     }  
  54.     // 后向++   区别前向++,加了个int形参  
  55.     A operator++(int o)  
  56.     {  
  57.         A temp=*this;  
  58.         b++;  
  59.         return temp;  
  60.     }  
  61.   
  62.     // 转换函数-- 形参列表为空,并且无返回类型  
  63.     operator int()  
  64.     {  
  65.         return b;  
  66.     }  
  67.   
  68.     //利用有元函数(可以访问类的私有成员)重载输入输出流  
  69.     friend ostream& operator<<(ostream &out,A &a);  
  70.     friend istream& operator>>(istream &in,A &a);  
  71. };  
  72.   
  73. //有元函数重载输出流  
  74. ostream& operator<<(ostream &out,A &a)  
  75. {  
  76.     out<<a.b<<endl;  
  77.     return out;  
  78. }  
  79.   
  80. //有元函数重载输入流  
  81. istream& operator>>(istream &in,A &a)  
  82. {  
  83.     in>>a.b;  
  84.     return in;  
  85.   
  86. }  
  87.   
  88. int main()  
  89. {     
  90.     A a1;  
  91.     cout<<a1;  
  92.     A a2=a1++;  
  93.     cout<<a2;  
  94.     a2=++a1;  
  95.     cout<<a2;  
  96.     a2+=a1;  
  97.     cout<<a2;  
  98.     return 0;     
  99. }  

 

版权声明:本文为博主http://www.feixueteam.net原创文章,未经博主允许不得转载。

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

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

类的运算符重载

类的运算符重载 参考书籍 :C++ 世界的两本世界名著 [C++ 程序设计语言 ] 和 [C++primer]重载知识点 1. 重载运算符 1.1 引言 1.2 限定及重载语法 1.2.1 限定 1....
  • smy0816
  • smy0816
  • 2011年05月06日 19:15
  • 3732

运算符重载(一般、关系、逻辑、单目、箭头操作符)

c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,...
  • duzejie
  • duzejie
  • 2016年10月07日 18:23
  • 973

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

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

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

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

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

搞c++有一段时间了,今天突然要重载一个运算符,发现自己有点忘了,遂查查资料做一下c++运算符重载的小总结。 一、何为运算符重载 运算符的重载是c++语言特有的,java什么的是没有运算符重载的,所以...
  • uestclr
  • uestclr
  • 2016年04月16日 21:59
  • 3254

C++_运算符重载_前缀自增与后缀自增

由于前缀自增与后缀自增在如果通过运算符重载在形式上相同,都为 以Date类为例 Date& operator++(Date &)(全局函数)/ Date& operator++( )(成员函数)无法区...
  • u010003835
  • u010003835
  • 2015年08月06日 18:16
  • 2753

关于运算符重载的两种方式的优缺点比较

大家都知道一般常用两种重载运算符的方式分别是: 1.作为成员函数重载运算符.    2.作为友元函数重载运算符. 这里我给个例子. 这里是DoubleA class DoubleA { publi...
  • y1196645376
  • y1196645376
  • 2016年03月31日 17:06
  • 2921

LintCode-赋值运算符重载

实现赋值运算符重载函数,确保: 新的数据可准确地被复制旧的数据可准确地删除/释放可进行 A = B = C 赋值 样例 如果进行 A = B 赋值,则 A 中的数据被删除,取而代...
  • wangyuquanliuli
  • wangyuquanliuli
  • 2015年05月21日 18:14
  • 1857

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

【项目1-分数类中的运算符重载】   (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。class CFraction { private: ...
  • sxhelijian
  • sxhelijian
  • 2016年05月19日 21:44
  • 3252
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:运算符重载
举报原因:
原因补充:

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