特殊成員函式 (C++)
C + + 會定義幾種可以宣告的函式只做為類別成員,這些稱為 「 特殊成員函式 」。 這些函式會影響特定類別的物件建立、 損毀、 複製並轉換成其他型別的物件的方式。 許多這些函式的另一個重要的屬性是它們可以呼叫隱含 (由編譯器)。
這一節所述的特殊成員函式如下所示:
建構函式。 啟用自動初始化的物件。
解構函式。 之後會明確或隱含地終結物件,請執行清除作業。
型別轉換函數。 類別型別和其他型別之間進行轉換。
運算子的新函式。 以動態方式配置儲存體。
運算子 delete 函式。 釋放存放配置使用新運算子。
指派運算子 (運算子 =)。 作業發生時,會使用它。
上述清單中的項目可以是使用者定義的每個類別。
特殊成員函式會遵循相同的存取規則,為其他成員函式。 存取規則說明, 成員存取控制。 下表摘要說明成員及朋友的函式的行為方式。
函式行為的摘要
函式型別 |
被繼承自基底類別的函式嗎? |
函式都可以虛擬嗎? |
函式將值傳回嗎? |
請是函式成員或朋友吗? |
將編譯器產生函式,如果使用者沒有嗎? |
---|---|---|---|---|---|
建構函式 |
否 |
否 |
否 |
成員 |
是 |
複製建構函式 |
否 |
否 |
否 |
成員 |
是 |
解構函式 |
否 |
是 |
否 |
成員 |
是 |
轉換 |
是 |
是 |
否 |
成員 |
否 |
工作分派 (operator=) |
否 |
是 |
是 |
成員 |
是 |
new |
是 |
否 |
void* |
靜態成員 |
否 |
刪除 |
是 |
否 |
void |
靜態成員 |
否 |
其他成員函式 |
是 |
是 |
是 |
成員 |
否 |
Friend 函式 |
否 |
否 |
是 |
Friend |
否 |