c 過載及相關知識詳細講解

2021-08-25 12:04:14 字數 1253 閱讀 7918

成員函式

形如l#r雙目操作符表示式,將被編譯器解釋為 l.operator#(r)

全域性函式

形如l#r的雙目操作符表示式,將被編譯器解釋為 ::operator#(l,r)成員函式

形如#o或o#的單目操作表示式,將被編譯器解釋為 o.operator#(),唯一的運算元是呼叫物件。

全域性函式

形如#o或o#的單目操作表示式,將被編譯器解釋為 ::operator#(o),唯一的運算元是呼叫物件。

point operator /+-*%|^& (point& that)

注意:原物件的值不變,要產生乙個臨時的物件
bool

operator > < >= <= == != || && (point& that)

point& operator += -= *= /= (point& that)

注意:運算子的過載要符合情理。

可能會訪問到引數的私有成員:

point operator + (point& a,point& b)

前++/–
point& operator ++/-- (void)

後++/–
point operator ++/-- (int)

前++/–
point& operator ++/-- (point&)

後++/–
point operator ++/-- (point&,int)

// 輸入、輸出運算子不能過載為成員函式,只能是友元

ostream& operator

<< (ostream& os,point& p)

istream& operator >> (istream& is, point& p)

只有極個別的運算子的過載對於物件來說是有意義(>>,<<)

常考的運算子過載:前++/–,後++/–1、不能過載的運算子

2、運算子的過載改變不了運算子的優先順序

3、無法改變運算子的操作個數

4、無法發明新的運算子

5、過載運算子要注意運算子的一致性

6、運算子的過載是為了方便使用、增強可讀,不應該成功賣弄的工具。

作業:使用c++的語法實現單向鍊錶,並過載、<<。

C 運算子過載相關知識

c 允許在同一作用域中的某個函式和運算子指定多個定義,分別稱為函式過載或者運算子過載。程式設計師可以重定義或過載大部分 c 內建的運算子。這樣,他就能使用自定義型別的運算子。過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和其後要過載的運算子符號構成的。與其他函式一樣,過載運算...

c語言詳細講解!

你知道我們申明乙個變數時象這樣int i 這個i是可能在它處重新變賦值的。如下 int i 0 i 20 這裡重新賦值了 不過有一天我的程式可能需要這樣乙個變數 暫且稱它變數 在申明時就賦乙個初始值。之後我的程式在其它任何處都不會再去重新對它賦值。那我又應該怎麼辦呢?用const const int...

原碼 反碼 補碼知識詳細講解

本篇文章講解了計算機的原碼,反碼和補碼.並且進行了深入探求了為何要使用反碼和補碼,以及更進一步的論證了為何可以用反碼,補碼的加法計算原碼的減法.論證部分如有不對的地方請各位牛人幫忙指正 希望本文對大家學習計算機基礎有所幫助 一.機器數和真值 在學習原碼,反碼和補碼之前,需要先了解機器數和真值的概念....