C 過載運算子

2021-09-22 18:20:29 字數 1273 閱讀 1834

1.過載運算子的函式一般格式:

函式型別 operator 運算子名稱(形參表)

2.過載運算子規則

( 1 )c++不允許使用者自己定義新的運算子,只能對已有的c++運算子進行過載。

( 2 ) 除了類屬關係運算子 " . " 、成員指標運算子 " .* " 、作用域運算子 " :: " 、sizeof運算子和三目運算子 " ?: " 以外,c ++ 中的所有運算子都可以過載。

( 3 ) 過載不能改變運算子運算物件(即運算元)的個數。

( 4 ) 過載之後的運算子不能改變運算子的優先順序和結合性。

( 5 ) 過載運算子的函式不能有預設的引數。

( 6 ) 過載的運算子必須和使用者定義的自定義型別的物件一起使用,其引數至少應有乙個是類物件(或類物件的引用)。

( 7 ) 用於類物件的運算子一般必須過載,但是有兩個例外,運算子「=」和「&」不必使用者過載。

下面是我在學習c++過程中的一道習題,練習了過載運算子:

有兩個矩陣a和b,均為2行3列。求兩個矩陣之和。過載運算子「+」,使之能用於矩陣相加。如c=a+b。過載流插入運算子「<<」和流提取運算子「>>」,使之能用於該矩陣的輸入和輸出。

下面是**:

#include

#include

/**過載+ - * /運算子和《流插入,>>流提取運算子

**/using namespace std;

class matrix

; matrix operator +

(matrix m2)

; friend istream&operator>>

(istream&input,matrix &s)

; friend ostream&operator<<

(ostream&output,matrix &s);}

;istream&operator>>

(istream&input,matrix &s)

ostream&operator<<

(ostream&output,matrix &s)

output<}return output;

}void matrix:

:display()

cout

:operator +

(matrix m2)

intmain()

C 過載運算子

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

C 過載運算子

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

C 過載運算子

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