非成員函式實現運算子過載可以實現運算子前後都可以隱式轉換成所需的型別進行計算,如:
fraction d = a *2;
//根據a的型別,將2隱式轉換為fraction型別
fraction e =
2* a;
當類具有獲取參與運算子過載運算的必要私有資料介面時,使用非友元非成員函式。
#include
using namespace std;
class fraction
intgettop()
const
//獲取私有成員變數的介面
當類不具有獲取參與運算子過載運算的全部必要私有資料介面時,使用友元非成員函式,該函式可以訪問類的私有成員。
C 友元函式和非成員運算子過載
定義友元 運算子函式box operator const box b1 const box b2 友元函式的特點是,可以與成員函式一樣具有訪問private 成員變數。但友元函式並不是成員函式。建立友元函式的關鍵在於,將其原型放在類宣告中,並在函式名前加上關鍵字friend include usin...
過載運算子作為成員函式還是非成員函式
一 定義為成員函式的運算子 1.賦值 呼叫 下標 成員訪問箭頭運算子 2.改變物件狀態的運算子或者與給定型別密切相關的運算子 遞增 遞減 解引用 3.復合賦值運算子 注 它也可以定義為非成員函式 二 定義為非成員函式的運算子 1.具有對稱性的,即能轉換任意一端的運算物件的運算子 算術 相等性 關係 ...
C 運算子過載函式之成員運算子過載函式
5.2.3 成員運算子過載函式 在c 中可以把運算子過載函式定義為某個類的成員函式,稱之為成員運算子過載函式。1.定義成員運算子過載函式的語法形式 1 在類的內部,定義成員運算子過載函式的格式如下 函式型別 operator 運算子 形參表 2 成員運算子過載函式也可以在類中宣告成員函式的原型,在類...