C 過載運算子

2021-09-12 08:05:49 字數 1354 閱讀 3445

過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和其後要過載的運算子符號構成的。與其他函式一樣,過載運算子有乙個返回型別和乙個引數列表。

如果我們定義的函式為類的成員函式:box operator+(const box&);

如果我們定義的函式為非成員函式,那麼我們需要為每次操作傳遞兩個引數:box operator+(const box&, const box&);

下面是不可過載的運算子列表:

值得注意的是:

#include using namespace std;

class box

void setlength( double len )

void setbreadth( double bre )

void setheight( double hei )

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

box operator+(const box& b)

private:

double length; // 長度

double breadth; // 寬度

double height; // 高度

};// 程式的主函式

int main( )

distance(int f, int i)

// 顯示距離的方法

void displaydistance()

distance(int f, int i)

friend ostream &operator<<( ostream &output,

const distance &d )

friend istream &operator>>( istream &input, distance &d )

};int main()

當上面的**被編譯和執行時,它會產生下列結果:

$./a.out

enter the value of object :

7010

first distance : f : 11 i : 10

second distance :f : 5 i : 11

third distance :f : 70 i : 10

下面的例項演示了如何過載下標運算子 。 

#include using namespace std;

const int size = 10;

class safearay

}int& operator(int i)

return arr[i];

}};int main()

C 過載運算子

運算子過載是一種形式的c 多型。在c 中,編譯器有能力把乙個由資料 物件和操作符共同組成的表示式,解釋為對乙個全域性或成員函式的呼叫。該全域性或成員函式被稱為操作符函式,通過重定義操作符函式,可以實現針對自定義型別 結構,類 的運算法則,並使之與內建型別一樣參與各種表示式。過載運算子可使 看起來更加...

C 過載運算子

本文主要講述加號運算子 自增運算子 流提取運算子運 流插入運算子 先給出vector類 class vector 建構函式 vector const vector v 拷貝建構函式 vector operator const vector v 過載 vector operator 過載前置自增運算子...

C 過載運算子

1.過載運算子的函式一般格式 函式型別 operator 運算子名稱 形參表 2.過載運算子規則 1 c 不允許使用者自己定義新的運算子,只能對已有的c 運算子進行過載。2 除了類屬關係運算子 成員指標運算子 作用域運算子 sizeof運算子和三目運算子 以外,c 中的所有運算子都可以過載。3 過載...