//成員函式返回本物件自己或者自己的拷貝
//return *this對應complex &,則返回物件本身(物件的引用)
//return *this對應complex ,則返回物件的副本
//return this對應complex *,則返回物件當前位址(指向當前物件的指標)
//返回新的物件,呼叫建構函式
//return complex(real + c.real,imag+c.imag);//呼叫預設建構函式,返回臨時無名物件
#include
using
namespace std;
class
complex
complex operator+(
const complex &c)
const
; complex operator-(
const complex &c)
const
; complex operator*(
const complex &c)
const
; complex &
operator++(
);complex operator++(
int)
; complex &
operator--(
);complex operator--(
int)
;void
display()
const
;private
:double real;
double imag;};
complex complex::
operator+(
const complex &c)
const
complex complex::
operator-(
const complex &c)
const
complex complex::
operator*(
const complex &c)
const
complex & complex::
operator++(
)//前置++,無引數
//成員函式返回本物件自己或者自己的拷貝
//return *this對應complex &,則返回物件本身(物件的引用)
//return *this對應complex ,則返回物件的副本
//return this對應complex *,則返回物件當前位址(指向當前物件的指標)
//返回新的物件,呼叫建構函式
//return complex(real + c.real,imag+c.imag);//呼叫預設建構函式,返回臨時無名物件
complex complex::
operator++(
int)
//後置++,有引數,過載(引數不同)區別前置++
complex &complex::
operator--(
)//前置--,無引數
complex complex::
operator--(
int)
//後置--,有引數,過載(引數不同)區別前置--
void complex::
display()
const
intmain()
執行結果:
呼叫預設建構函式
呼叫預設建構函式
呼叫預設建構函式a=(
2.3)+(
4.5)ib=(
4.3)+(
1.5)i
a+b: 呼叫預設建構函式
(6.6)+
(6)ia*b: 呼叫預設建構函式
(9.89)+
(6.75
)i++a:
(3.3)+
(5.5
)ia =
(3.3)+
(5.5
)ib++:(
4.3)+(
1.5)ib=(
5.3)+(
2.5)i
b--:
(5.3)+
(2.5
)ib=
(4.3)+
(1.5
)i--b:
(3.3)+
(0.5
)ib=
(3.3)+
(0.5
)i請按任意鍵繼續.
..
C 類的成員函式的過載
一般而言,如果以乙個基類的指標指向派生類物件,那麼經由該指標只能夠呼叫基類所定義的函式。如果基類和派生類都定義了相同名稱之成員函式,那麼必須視該指標的原始型別而定。這是因為虛函式的原因。如果以乙個派生類之指標指向乙個基類物件,必須做型別強制轉換。這種做法很危險,不符合真實生活經驗,在程式設計上會給程...
C 類成員函式的過載 覆蓋與隱藏
1.過載 覆蓋與隱藏 1 過載 成員函式具有以下的特徵時發生 過載 a 相同的範圍 同乙個類中 b 函式的名字相同 c 引數型別不同 不能進行隱式型別轉換 d virtual關鍵字可有可無 2 覆蓋 也叫 繼承 指派生類函式覆蓋基類函式,特徵是 a 不同的範圍 分別位於基類與派生類中 b 函式名字相...
C 類成員函式的過載 覆蓋與隱藏
1.過載 覆蓋與隱藏 1 過載 成員函式具有以下的特徵時發生 過載 a 相同的範圍 同乙個類中 b 函式的名字相同 c 引數型別不同 不能進行隱式型別轉換 d virtual關鍵字可有可無 2 覆蓋 也叫 繼承 指派生類函式覆蓋基類函式,特徵是 a 不同的範圍 分別位於基類與派生類中 b 函式名字相...