C 過載操作符「 」

2021-10-09 10:19:39 字數 1199 閱讀 8057

[ ]運算子的過載使得操作物件陣列能像操作普通陣列一樣簡單。下面建立乙個intarray類,使得它具有c++不具備的陣列下標越界檢查。

類的定義:

class

intarray

int&

operator

(const

int&);

private

:int

* aptr;

int arraysize;

void

memerror()

;void

suberror();};

建構函式與析構函式等:

intarray::

intarray

(int s)

intarray::

intarray

(const intarray& obj)

intarray::

~intarray()

int& intarray::

operator

(const

int& sub)

void intarray::

memerror()

void intarray::

suberror()

主函式:

int

main()

程式測試結果:

這裡注意過載函式:operator[ ]函式的過載值型別特別值得關注,函式不應當僅僅返回

乙個整數值,而應當返回乙個引用,這是因為函式有時候要出現在賦值號左邊。例如:

table[5]=27;。由於賦值運算子的左邊必須代表乙個可以修改的記憶體空間(例如變

量),如果函式[ ]返回的是乙個值,那麼就不能做左元。但是乙個引用可以做左元,因

為它代表乙個變數。

我們可以通過過載改變運算子的含義,但是最好不要改變原意。

過載不能改變運算子原來要求的個數。如賦值號是個雙目運算子。

C 操作符過載

1.作為成員過載 class myclass public myclass operator const myclass d cons friend myclass operator const myclass a1,const myclass a2 關於返回值型別的討論 呼叫者堆疊裡返回乙個物件效...

C 過載操作符

過載操作符 一 過載操作符的定義 1.過載操作符的結構 返回型別 operator 需要過載的操作符 形參列表 注意 形引數目應和運算元數目相同。2.過載操作符的幾條注意事項 1 過載的操作符名不能通過連線其他合法符號來建立任何新的操作符。如 2 過載操作符必須具備至少乙個類型別或列舉型別的運算元。...

c 操作符過載

過載操作符 一 限制 1 不能增加新的操作符 2 有些操作符不能過載,如.物件中的訪問成員 作用域解析操作符 sizeof 三元操作符 3 不能改變操作符的元數,元數是指與操作符相關的引數或運算元個數。比如一元操作符 只能應用於乙個操作符 4 不能改變操作符的優先順序 5 不能重新定義內建型別的操作...