close

在polymorphism中 , 我們可以將base class轉換成許多不同的derived class , 

我們也解釋說 , 這個意思就像是employee (base class) 可以是manager , 也可以是engineer , operator .

(manager , engineer , operator都是derieved class , 且他們都具有employee的身份).

因此 , 若我們將這些derieved class做為argument傳送到function時 , function那邊是可以用一個base class來接收

所有的derieved class.

但是我們要怎麼知道接收到的class是屬於哪一個derieved class呢?

一個方法就是利用virtual function , virtual function允許derieved class定義出自己所想要運作的內容.

那當我們用base class進行接收時 , 我們可以將這個reference (or pointer)呼叫該virtual function , 

這時就會判斷這個base class是由哪個derieved class所傳送 , 因而得到不一樣的結果.

(如果是用member function的話 , 其呼叫的結果會得到base class的function內容.)

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 JerryCheng 的頭像
    JerryCheng

    KwCheng's blog

    JerryCheng 發表在 痞客邦 留言(0) 人氣()