C 過載運算子

2021-09-06 06:44:13 字數 1991 閱讀 2535

本文主要講述加號運算子「+」,自增運算子「++」,流提取運算子運「>>」,流插入運算子"<

先給出vector類:

class vector

//建構函式

vector(const vector& v) //拷貝建構函式

vector operator + (const vector& v); //過載+

vector operator ++ (); //過載前置自增運算子「++」

vector operator ++ (int); //過載後置自增運算子「++」

friend istream& operator >> (istream& input, vector& v); //過載「>>」

friend ostream& operator << (ostream& output, vector& v); //過載「<

private:

double x;

double y;

};

1.過載加號

**實現

vector vector::operator + (const vector& v)

;

「/」、「*」、「-」的過載類似。

2.過載自增運算子

自增運算子分為前置和後置兩種。對於前置自增,過載函式返回自增後的物件,對於後置自增,過載函式返回自增前的物件。為了區分,c++規定,在對自增運算子進行過載時,若額外加上乙個int型形參,就表明過載的是後置自增。

(1)前置自增

vector vector::operator ++ ()

;

(2)後置自增

vector vector::operator ++ (int)

;

「--」的過載類似。

3.「>>」和「<

前面的運算子均過載為類的成員函式,但是對於流插入和流提取運算子卻不能如此,而是過載為類的友元函式。

「>>」過載

istream& operator >> (istream& input, vector& v)

;

「<

ostream& operator << (ostream& output, vector& v)

;

以下是完整的程式:

#include using namespace std;

class vector

vector(const vector& v)

vector operator + (const vector& v);

vector operator ++ ();

vector operator ++ (int);

friend istream& operator >> (istream& input, vector& v);

friend ostream& operator << (ostream& output, vector& v);

private:

double x;

double y;

};vector vector::operator + (const vector& v)

;vector vector::operator ++ ()

;vector vector::operator ++ (int)

;istream& operator >> (istream& input, vector& v)

;ostream& operator << (ostream& output, vector& v)

;int main()

執行:

C 過載運算子

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

C 過載運算子

過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和其後要過載的運算子符號構成的。與其他函式一樣,過載運算子有乙個返回型別和乙個引數列表。如果我們定義的函式為類的成員函式 box operator const box 如果我們定義的函式為非成員函式,那麼我們需要為每次操作傳遞兩個...

C 過載運算子

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