共用方式為


C++ 函式定義

函式定義與函式宣告的不同之處在於,前者提供函式主體,也就是構成函式的程式碼。 函式定義的形式為:

decl-specifiers declarator [cv-qualifers] [exception-specification]
{
   // function body
}
decl-specifiers declarator [cv-qualifers] =default;

decl-specifiers declarator [cv-qualifers] =delete;

定義的組件包括:

  • 宣告規範,如函式宣告中所述。

  • 宣告子 (本文稍後說明)。

  • 選擇性的 const 或 volatile 限定詞。 在此內容中,const 只能用於類別成員,以表示函式不會修改類別的資料成員。

  • 例外狀況規格,描述函式可能擲回的例外狀況。 請參閱 例外狀況規格

  • 函式主體,包括用大括號 {} 括住的陳述式。

  • =default;,如果是明確預設定義。

  • =delete;,如果是已刪除的定義。

宣告子的格式為:

  • 修改傳回類型的選擇性指標或參考運算子。

  • 選擇性的 Microsoft 專有修飾詞。 請參閱 Microsoft 專有的修飾詞

  • 函式的名稱。 如果函式是類別或結構的成員,則可使用範圍解析運算子限定名稱。

  • 引數宣告清單會放在括號 () 中。

  • 若是建構函式,則為選擇性的建構函式初始設定式 (本文稍後說明)。

如需宣告子在這類情況下之形式的詳細資訊,請參閱函式宣告中有關傳回函式指標之函式的註解。

引數宣告清單宣告的型式引數是在函式主體的範圍內。

下圖顯示函式定義的組件。 陰影區域是函式主體。

函式定義的組件

函式定義的部分

語法建構函式初始設定式項目只會在建構函式中使用。 其目的是要允許初始化基底類別及包含的物件。 如需建構函式初始設定式使用方式的詳細資訊,請參閱初始化基底和成員

只能為特殊成員函式宣告明確預設的定義。 當特殊成員函式明確地預設時,實作會定義它,就像具有隱含定義一般,不過,它可能是非內嵌 (隱含宣告的特殊成員函式一定會內嵌)。 如需預設函式的詳細資訊,請參閱 C++11 功能的支援 (現代 C++)中的<預設和已刪除的函式>一節。

已刪除的定義 (也稱為被刪除的函式) 會以隱含方式內嵌。 明確或隱含參考已刪除的函式 (除了宣告該函式) 之程式為語式錯誤。 如需已刪除的函式的詳細資訊,請參閱 C++11 功能的支援 (現代 C++)中的<預設和已刪除的函式>一節。

請參閱

參考

宣告子

概念

函式上的引數相依名稱 (Koenig) 查閱