特殊成員函式 (C++)
C++ 定義的幾類函式只能宣告為類別成員,這些函式稱為「特殊成員函式」。這些函式會影響指定的類別建立、終結、複製物件,以及將物件轉換成其他類型物件的方式。 大部分的另一個重要屬性這些函式則會以隱含方式呼叫 (由編譯器呼叫)。
本節描述的特殊成員函式如下:
建構函式。 啟用物件的自動初始化。
解構函式。 在物件以明確或隱含方式終結後執行清除。
轉換函式。 在類別類型和其他類型之間轉換。
運算子 new 函式。 以動態方式配置儲存區。
運算子 delete 函式。 釋放使用 new 運算子所配置的儲存區。
指派運算子 (運算子=)。 在進行指派時使用。
上述清單中的項目可以是使用者針對每個類別所定義的項目。
特殊成員函式與其他成員函式皆遵守相同的存取規則。 存取規則在成員存取控制中說明。 下表摘要列出成員和 friend 函式的運作方式。
函式行為的摘要
函式類型 |
函式是否繼承自基底類別? |
函式是否可以為虛擬函式? |
函式是否會傳回值? |
函式是成員或 friend 函式? |
如果使用者不需要的話,編譯器是否會產生函式? |
---|---|---|---|---|---|
建構函式 |
否 |
否 |
否 |
成員 |
是 |
複製建構函式 |
否 |
否 |
否 |
成員 |
是 |
解構函式 |
否 |
是 |
否 |
成員 |
是 |
轉換 |
是 |
是 |
否 |
成員 |
否 |
指派 (operator=) |
否 |
是 |
是 |
成員 |
是 |
new |
是 |
否 |
void* |
靜態成員 |
否 |
刪除 |
是 |
否 |
void |
靜態成員 |
否 |
其他成員函式 |
是 |
是 |
是 |
成員 |
否 |
friend 函式 |
否 |
否 |
是 |
Friend |
否 |