運算子的過載使得我們可以更加方便的使用常見的運算子進行操作。
過載運算子的函式格式如下:
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.雙目運算子一般可以用...