c++运算符重载,输出符号重载

来源:互联网 发布:淘宝复核认证本人不在 编辑:程序博客网 时间:2024/05/18 00:31

运算符有单目运算符和双目运算符,分别跟一个操作数和两个操作数。在c++里面无论是那种他们都可以操作多种类型的的变量,例如+运算符a+b,a,b既可以是整型,也可以是浮点型(float),编译器有一张符号表保存了a,b的类型(可以自己去看编译原理),当编译器在翻译a+b时根据其类型调用相应子程序处理。有时候我们觉得a,b的类型不够,这个时候,我们就可以重载+,比如我们想实现   classA+classB,我们就可以重载+,返回值 operator+(classA  a,classB  b){

要干的事.....

return 返回值

}

具体干什么以及返回值自己定义。下面给出了输出符号《是怎么重载的






#include "stdafx.h"
#include<iostream>
using namespace std;



class g{


public:
int  m;
};

//h是《的左操作数,o是《的右操作数

  ostream& operator<<(g h,ostream& o){

  return o<<h.m;

  } ;

int _tmain(int argc, _TCHAR* argv[])
{
g k;
k.m=100;
k<<cout<<endl;
return 0;
}
1 0