天天看点

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

运算符有单目运算符和双目运算符,分别跟一个操作数和两个操作数。在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;

}

继续阅读