c 過載運算子 友元函式

2021-10-11 21:44:47 字數 895 閱讀 5838

運算子的過載使得我們可以更加方便的使用常見的運算子進行操作。

過載運算子的函式格式如下:

operatorop

(argement-list)

接下來的例子中,我們將定義乙個time類,並通過過載運算子+和《來實現時間的加法和輸出顯示,其中會使用友元函式(friend)

#ifndef time_h

#define time_h

#include

class

time

#end if

#include

"time.h"

time::

time()

time::

time

(int h,

int m)

time operator+(

const time & t)

const

//友元函式只需要在原型處使用friend,在定義時不需要使用friend

std::ostream &

operator

<<

(std::ostream & os,

const time &t)

#include

#include

"time.h"

intmain()

//output

aida:

3 hours,

35 minutes

tosca:

2 hours,

48 minutes

aida+tosca=

4 hours,

11 minutes

過載運算子以及友元函式

在自己已經創造好的類中如果想更加簡化一些運算,比如之前兩個類中的物件如果想要相加必須通過類成員函式來實現,現在假設之前建立好的time類中的兩個物件 time a time b timec c a b 如果想實現上述運算,就要求過載運算子 利用關鍵字operator來實現。首先在標頭檔案中就要宣告過...

成員函式過載運算子和友元函式過載運算子的比較

1.對雙目 運算子而言,成員 函式過載 運算子的函式引數表中只有乙個引數,而用友元函式過載運算子函式引數表中含有兩個引數。對單木運算子來說,成員函式過載運算子的函式引數表中沒有引數,而用友元函式過載運算子函式引數表中含有乙個函式。這個問題要搞清楚,有乙個this 指標的問題。2.雙目運算子一般可以用...

成員函式過載運算子和友元函式過載運算子的比較

1.對雙目 運算子而言,成員 函式過載 運算子的函式引數表中只有乙個引數,而用友元函式過載運算子函式引數表中含有兩個引數。對單木運算子來說,成員函式過載運算子的函式引數表中沒有引數,而用友元函式過載運算子函式引數表中含有乙個函式。這個問題要搞清楚,有乙個this 指標的問題。2.雙目運算子一般可以用...