共用方式為


多載函式的限制

有幾個限制管理多載函式中可接受的群:

  • 在一組多載函式中的任何兩個函式都必須具有不同的引數清單。

  • 多載具有相同的型別,並根據侵擾的傳回型別引數清單的函式會產生錯誤。

    Microsoft 專有的

您可以多載 new 運算子僅為基礎的傳回型別 — 特別是,為基礎的指定的記憶體模型修飾詞。

結束 Microsoft 特定

  • 成員函式不能多載只依據最有一個是靜態和其他的 nonstatic。

  • typedef宣告不會定義新的型別 ; 就是引入現有型別的同義字。它們不會影響多載的機制。請考慮下列程式碼:

    typedef char * PSTR;
    
    void Print( char *szToPrint );
    void Print( PSTR szToPrint );
    

    上述的兩個函式有相同的引數清單。PSTR是類型 char *。在成員的範圍內,這段程式碼會產生錯誤。

  • 列舉型別是不同的型別,而且可以用來區分多載函式。

  • 型別 「 陣列 」 和 「 指標 」 會視為相同用於區分多載函式。這是只對單一 dimensioned 的陣列,則為 true。因此,下列多載函式衝突並產生錯誤訊息:

    void Print( char *szToPrint );
    void Print( char szToPrint[] );
    

    若是乘 dimensioned 的陣列,第二個和後續所有的維度視為型別的一部分。因此,它們用於區分多載函式:

    void Print( char szToPrint[] );
    void Print( char szToPrint[][7] );
    void Print( char szToPrint[][9][42] );
    

請參閱

參考

多載化的概觀