c 過載各種運算子

2021-06-20 02:53:01 字數 1440 閱讀 9220

copy from:

以下示例中定義了乙個class test, 過載了<, +, +=, =, ==, <<, >>等符號:

#include

#include

using namespace std;

class test

test(const int &a):v(a){}

test(const test &t1):v(t1.v){} 

/*以下過載小於號 < */

//比較兩個物件的大小 

bool operator<(const test &t1) const

//比較物件和int的大小 

bool operator<(const int &t1) const

//友元函式,比較int和物件的大小 

friend inline bool operator<(const int &a, const test & t1)

/*以下過載賦值號 = */

//物件間賦值 

test & operator=(const test &t1)

//int賦值給物件 

test & operator=(const int &t1)

/*以下過載加號 + */

//物件加上 int 

test operator+(const int & a)

//物件加物件 

test operator+(test &t1)

/*以下過載加等號 += */  

//物件加上物件 

test &operator+=(const test &t1)  

//物件加上int

test &operator+=(const int &a)

/*以下過載雙等號 == */  

//物件==物件 

bool operator==(const test &t1)const  

//物件==int

bool operator==(const int &t1)const  

/*以下過載 輸入》 輸出<< */

/*友元函式,輸出物件*/

friend inline ostream & operator << (ostream & os, test &t1)

/*友元函式,輸入物件*/

friend inline istream & operator >> (istream & is, test &t1) };

int main()

friend 

string

operator

+(test);

};string

operator

+(string

c,test a)

void

main()

輸出「hello world!」

各種過載運算子過載

一 基本定義 1 c 預定義的運算子只能用於基本資料型別的運算 整型 實型 字元型 邏輯型,但是不能作用於物件之間。2 運算子過載的目的是擴充套件c 中提供的運算子的適用範圍,使之能作用於物件。3 運算子過載的實質是函式過載,可以過載為普通成員函式,也可以過載為成員函式。4 根據實參的型別決定呼叫哪...

C 運算子過載 過載特殊運算子

賦值運算子用於同類物件間的相互賦值。賦值運算子只能被過載為類的非靜態成員函式,不能過載為友元函式和普通函式。對於使用者自定義的類而言,如果沒有過載賦值運算子,那麼c 編譯器會為該類提供乙個預設的過載賦值運算子成員函式。預設賦值運算子的工作方式是按位對拷,將等到右邊物件的非靜態成員拷貝給等號左邊的物件...

C 運算子過載賦值運算子

自定義類的賦值運算子過載函式的作用與內建賦值運算子的作用類似,但是要要注意的是,它與拷貝建構函式與析構函式一樣,要注意深拷貝淺拷貝的問題,在沒有深拷貝淺拷貝的情況下,如果沒有指定預設的賦值運算子過載函式,那麼系統將會自動提供乙個賦值運算子過載函式。賦值運算子過載函式的定義與其它運算子過載函式的定義是...