c++標準規定,對於二元運算子的過載,第乙個引數必須是自己
class ca
; ca(int a)
:m_a(a){};
bool operator==(int b)//==是二元運算子,第乙個引數是自己:即ca,(預設的)
//,第二個引數int b
int m_a;
}; 使用例子:
trace("%d/n",ca(1)==2);
用這種方式過載時,操作符左右兩引數是不能,交換的,
如:trace("%d/n",2==ca(2));//這種寫法編譯都通不過
要使第二種情況也能工作,就必須重新過載。
class ca
; ca(int a)
:m_a(a){};
friend bool operator==(int b,ca& a) //1
; bool operator==(int b)//==是二元運算子,第乙個引數是自己:即ca,(預設的)
//,第二個引數int b //2
int m_a;
} ;比較一下//1和//2
當然你可以把//2 定義為
friend bool operator==(ca & a ,int b)//==是二元運算子,第乙個引數是自己:即ca,(預設的)
//,第二個引數int b
C 二元運算子過載
二元運算子需要兩個引數,下面是二元運算子的例項。我們平常使用的加運算子 減運算子 乘運算子 和除運算子 都屬於二元運算子。就像加 運算子。下面的例項演示了如何過載加運算子 類似地,您也可以嘗試過載減運算子 和除運算子 include using namespace std class box voi...
二元運算子過載
siwuxie095 二元運算子過載 所謂 二元運算子,即 這個符號與兩個運算元進行運算 1 加號 的過載 加號 的過載方式有兩種 一種是友元函式過載,一種是成員函式過載 1 先來看成員函式過載,如下 定義乙個座標類 coordinate 在類中宣告成員函式 operator 它的引數是 const...
C 之運算子過載(二元)
一 加號 1.成員函式過載 2.友元函式過載 二 輸出符號 三 索引符號 四 補充說明 一 為什麼 運算子的過載必須定義為友元 如果在類中定義非友元成員函式,預設第乙個引數缺省會傳入this 指標,這時就無法實現cout在前 物件在後的格式 因為二元運算子中的呼叫格式是 引數一 運算子 引數二 這也...