運算子的過載

2021-10-22 22:56:45 字數 1109 閱讀 6746

c++內類的運用

#include

using

namespace std;

class

time

;time::

time()

time::

time

(int h,

int m)

void time::

addmin

(int m)

void time::

addhr

(int h)

void time::

reset

(int h,

int m)

time time::

sum(

const time& t)

const

void time::

show()

const

intmain()

這是一串簡單的類**,比較重要的是sum()函式,注意到了引數是引用但是返回型別不是引用。將引數宣告作為引用的目的只是為了提高效率,傳遞引用速度更快,使用的記憶體更少。

看一下輸出內容qaq

planning time =

0 hours,

0 minutes

coding time =

2 hours,

40 minutes

fixing time =

5 hours,

55 minutes

coding.

sum(fixing)

=8 hours,

35 minutes

接下來我們要在類裡面新增加法運算子「+」

我們只修改主函式和sum()函式宣告,其他的都是一樣的。

include 

using

namespace std;

intmain()

operator+()也是由time物件呼叫的,第二個time的物件作為引數,斌且返回乙個time物件。因此可以用sum()方法呼叫。

運算子過載非常好用,但是也有許多限制,下一章來敘述。

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

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

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

下面介紹類的賦值運算子 1.c 中物件的記憶體分配方式 在c 中,物件的例項在編譯的時候,就需要為其分配記憶體大小,因此,系統都是在stack上為其分配記憶體的。這一點和c 完全不同!千 萬記住 在c 中,所有類都是reference type,要建立類的實體,必須通過new在heap上為其分配空間...

運算子過載限制 不能過載的運算子

1.過載後的運算子必須至少有乙個操作符是使用者定義的型別。2.使用運算子不能違反運算子原來的句法規則。3.不能新建運算子 4.不能過載 sizeof const cast,dynamic cast,reinterpret cast,static cast 5.只能通過成員函式過載的運算子 限制說明 ...