天天看點

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;

}

繼續閱讀