首頁 > 程式設計 > [C++] 多載(Overloading) 對於繼承上的一個小觀念

[C++] 多載(Overloading) 對於繼承上的一個小觀念

看書看到的,我覺得很重要就先把它記下來,免得日後coding時,造成不必要的麻煩。 在C++中,多載(Overloading)的設計,可以讓我們不用寫很多且複雜的function.

但是,要記住,在繼承關係中,要做到父子類別的Overloading時,要稍微注意一下是否真的有Overloading?

例如:

今天有A、B兩個Class ,B繼承A(也就是A是B的父親)。A有fun()這個函數,B有fun(int i)函數。

當你在宣告B CLASS_B時,可別以為B這個Class同時有,fun(int i) 與 fun()這兩個函數喔!

因為多載的概念是基於多載函數必須在同一個類別內,所以當有兩個同樣名稱但是參數不同時,Compiler會視為重複定義了fun這個函數,編譯的時候就會出現錯誤!

這時候要怎麼做呢?有兩種解法:

1. 只要在B class內,宣告

using A::fun;

即可使用。

2. 如果Compiler不支援上面的方法,那麼就只好在B class中另外寫一個

void fun()

{

    A::fun();

}

即可達成!

分類:程式設計 標籤:
  1. 仍無迴響。
  1. No trackbacks yet.

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: