C 運算子過載 operator

2021-10-25 17:23:21 字數 736 閱讀 6188

參考《c++ primer plus 》 p381,運算子過載

定義乙個表示時間的 time() 類,有成員變數 hours 和 minutes ,如果需要將 time() 的兩個例項表示的時間(如2小時40分鐘 加上 1 小時30分鐘)相加, 可以定義成員函式 sum() ,還可以過載 + 加法運算子 。

//標頭檔案 mytime.h

class

time

//類定義檔案

#include

#include

"mytime.h"

time::

time()

time::

time

(int h,

int m)

time time::

sum(

const time &t)

const

只需要將 sum() 的名稱改為operator +() 即可,只要把運算子放到operator後面。

//標頭檔案 mytime.h

class

time

time time::

operator+(

const time &t)

const

C 運算子過載 operator

您可以重定義或過載大部分 c 內建的運算子。這樣,您就能使用自定義型別的運算子。過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和其後要過載的運算子符號構成的。與其他函式一樣,過載運算子有乙個返回型別和乙個引數列表。box operator const box 宣告加法運算子用...

operator運算子過載

運算子過載 一 作為類成員函式的過載 為了能進行類物件和乙個整型值的加法運算,需要寫乙個類的成員函式來過載雙目加法 運算子。該函式在類中的宣告如下 date operator int const 函式的宣告指出,返回值是乙個date類物件,函式名是運算子 只有乙個整型引數,而且函式是常量型的。當編譯...

運算子的過載 operator

一 運算子的過載 運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別 在複雜資料型別中,編譯器不能識別運算子,如c 中,物件 物件,編譯器無法知道怎麼運算,所以就需要編寫函式,實現相應功能。不能過載的 運算子五個 szieof 二 自增運算子過載的實現 a a 1.類...