(39 1)運算子過載之運算子過載的概念及實現

2021-10-02 15:42:20 字數 3898 閱讀 4103

返回型別 operator運算符號(形式引數列表)

operator後接需要過載的運算子, 成為運算子函式。

運算子函式的函式名就是「operator運算符號」 。

class

complex

//複數類

private:

double real;

//實部

double image;

//虛部

}

complex operator+

(const complex

&a,const complex

&b);

返回值是複數

c3的建構函式的預設值都是0

operator 運算符號(實參列表);
class 類名…

…};orclass 類名;

返回型別 類名:

:operator 運算符號(形式引數列表)

返回型別 類名:

:operator op(const 所屬型別 &obj2)

經過過載後, 表示式 「obj1 op obj2」

相當於obj1.operator op(obj2)

#include 

using namespce std;

class

complex

//複數類

complex operator +

(complex

&c2)

;//過載+運算子

complex operator -

(complex

&c2)

;//過載-運算子

void display(

) private:

double real;

//實部

double imag;

//虛部};

complex

complex

::operator +

(complex

&c2)

complex

complex

::operator -

(complex

&c2)

int main(

)

返回型別 類名:

:operator op(

)經過過載後, 表示式 「op obj」

相當於obj.operator op(

)

#include 

using namespace std;

class

complex

//複數類

complex operator ++(

);//過載前置+

+,彈幕運算子沒有引數

void display(

) private:

double real;

//實部

double imag;

//虛部};

complex

complex

::operator ++(

)int main(

)

返回型別 類名:

:operator op(

int)

//int標誌為後置

經過過載後, 表示式 「obj op」

相當於obj.operator op(

0)

#include 

using namespace std;

class

complex

//複數類

complex operator ++(

);//過載前置+

+,彈幕運算子沒有引數

void display(

) private:

double real;

//實部

double imag;

//虛部};

complex

complex

::operator ++(

)int main(

)

class 類名

;返回型別 operator 運算符號(形式引數列表)

返回型別 operator op(const 所屬型別 &obj1,const 所屬型別 &obj1)

經過過載後, 表示式 「obj1 op obj2」

相當於operator op(obj1,obj2)

#include 

using namespace std;

class

complex

//複數類

//建構函式

friend complex operator +

(const complex

&c1,const complex

&c2)

;//過載+運算子,operator +是我這個類的朋友,可以訪問類的私有成員

friend complex operator -

(const complex

&c1,const complex

&c2)

;//過載-運算子

void display(

) private:

double real;

//實部

double imag;

//虛部 };

complex operator +

(const complex

&c1,const complex

&c2)

complex operator -

(const complex

&c1,const complex

&c2)

int main(

)

返回型別 operator op(const 所屬型別 &obj)

經過過載後, 表示式 「op obj2

相當於operator op(obj)

返回型別 operator op(const 所屬型別 &obj,

int)

經過過載後, 表示式 「obj op「

相當於operator op(obj,

0)

#include 

using namespace std;

class

complex

//複數類

//建構函式

friend complex operator ++(

complex

&c1)

;//過載前置+

+,operator +

+過載為類的友元函式

friend complex operator ++(

complex

&c1,

int)

;//過載後置+

+ void display(

) private:

double real;

//實部

double imag;

//虛部};

complex operator ++(

complex

&c1)

complex operator ++(

complex

&c1,

int)

int main(

)

運算子過載之過載型別運算子

普通型別 類型別 呼叫對應的只有乙個引數 引數的型別就是這個普通型別 的建構函式 需求 boy boy1 10000 薪資 建構函式boy int boy boy2 rock 姓名 建構函式boy char 普通型別賦值給類型別其實很簡單,就是專門的對這個賦值的型別定義乙個建構函式。編譯器在執行 的...

運算子過載 賦值運算子的過載

有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...

過載之運算子過載

運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別 運算子過載的宣告方式與方法的宣告方式相同,但operator關鍵字告訴編譯器,它實際上是乙個運算子過載,後面是相關運算子的符號,在本例中就是 返回型別是在使用這個運算子時獲得的型別。在本例中,把兩個向量加起來會得到另...