C 程式設計點滴4 二元運算子過載問題

2021-08-23 13:27:33 字數 701 閱讀 9226

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在前 物件在後的格式 因為二元運算子中的呼叫格式是 引數一 運算子 引數二 這也...