C 二元運算子過載

2021-09-12 11:38:37 字數 1736 閱讀 3707

二元運算子需要兩個引數,下面是二元運算子的例項。我們平常使用的加運算子( + )、減運算子( - )、乘運算子( * )和除運算子( / )都屬於二元運算子。就像加(+)運算子。

下面的例項演示了如何過載加運算子( + )。類似地,您也可以嘗試過載減運算子( - )和除運算子( / )。

#include using namespace std; class box void setlength( double len ) void setbreadth( double bre ) void setheight( double hei ) // 過載 + 運算子,用於把兩個 box 物件相加 box operator+(const box& b) }; // 程式的主函式 int main( ) ;

a::a()

a::a(int n)//建構函式

a a::operator +(const a& obj)//過載+號用於 物件相加

a a::operator+(const int b)//過載+號用於 物件與數相加

a operator+(const int b, a obj)

void a::display()

輸出結果:

123

22

wdb wdb

424***[email protected]

11個月前 (04-08)

lonion.wei

295***[email protected]

對例項進行改寫,以非成員函式的方式過載運算子 +:

#include using namespace std;

class box

void setlength( double len )

void setbreadth( double bre )

void setheight( double hei )

/*** 改寫部分 2018.09.05

* 過載 + 運算子,用於把兩個 box 物件相加

* 因為其是全域性函式,對應的引數個數為2。

* 當過載的運算子函式是全域性函式時,需要在類中將該函式宣告為友員。

*/friend box operator+(const box& a, const box& b);

};box operator+(const box& a, const box& b)

// 程式的主函式

int main( )

{ box box1; // 宣告 box1,型別為 box

box box2; // 宣告 box2,型別為 box

box box3; // 宣告 box3,型別為 box

double volume = 0.0; // 把體積儲存在該變數中

// box1 詳述

box1.setlength(6.0);

box1.setbreadth(7.0);

box1.setheight(5.0);

// box2 詳述

box2.setlength(12.0);

box2.setbreadth(13.0);

box2.setheight(10.0);

// box1 的體積

volume = box1.getvolume();

cout << "volume of box1 : " << volume <

二元運算子過載

siwuxie095 二元運算子過載 所謂 二元運算子,即 這個符號與兩個運算元進行運算 1 加號 的過載 加號 的過載方式有兩種 一種是友元函式過載,一種是成員函式過載 1 先來看成員函式過載,如下 定義乙個座標類 coordinate 在類中宣告成員函式 operator 它的引數是 const...

C 之運算子過載(二元)

一 加號 1.成員函式過載 2.友元函式過載 二 輸出符號 三 索引符號 四 補充說明 一 為什麼 運算子的過載必須定義為友元 如果在類中定義非友元成員函式,預設第乙個引數缺省會傳入this 指標,這時就無法實現cout在前 物件在後的格式 因為二元運算子中的呼叫格式是 引數一 運算子 引數二 這也...

二元加運算子

減法,乘法,除法在運算過程中,都是先將運算元,轉成數值,再進行後續操作,而加法,卻有所不一樣。當兩個數值相加時,加法運算子,跟減法操作符一樣,直接求和。var a 1 var b 2 a b 3當兩個字串相加時,加法運算子,這表現為字串拼接。var a 1 var b 2 a b 12 注意 只有有...