Freigeben über


Einschränkungen für überladenen Funktionen

Einige Einschränkungen regeln einen akzeptablen Reihe von überladenen Funktionen:

  • Alle zwei Funktionen in einer Reihe von überladenen Funktionen müssen unterschiedliche Argumentlisten haben.

  • Das Überladen arbeitet mit Argumentlisten derselben Typen auf Grundlage der Rückgabetyp nicht, ist ein Fehler aufgetreten.

    Microsoft-spezifisch

Sie können Operator neu auf der Grundlage der Rückgabetyp nur speziell — Überladung auf der Grundlage von den angegebenen Arbeitsspeicher MODEL-Modifizierer.

Microsoft ENDES bestimmten

  • Memberfunktionen können nicht auf der Grundlage von eine statische und nicht statische andere nur überladen werden.

  • Deklarationentypedef keine neue Typen definieren. Sie stellen Synonyme für vorhandene Typen eingeführt.Sie wirken sich nicht auf den Mechanismus zur Überladen.Betrachten Sie folgenden Code:

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

    In den vorhergehenden zwei Funktionen verfügen über identische Argumentlisten.PSTR ist ein Synonym für **char ***Typ.Klicken Sie im Bereich Member wird dieser Code einen Fehler.

  • Enumerationstypen sind verschiedene Typen und können verwendet werden, um zwischen überladenen Funktionen unterscheiden.

  • Die Typen „Array“ und „Zeiger“ gelten als identisch mit dem Zweck des Unterscheidens zwischen überladenen Funktionen.Dies gilt nur für einzeln dimensionierte Arrays.Daher verursachen die folgenden überladenen Funktionen und eine Fehlermeldung generiert:

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

    Für multiplizieren Sie dimensionierte Arrays, das zweite und alle nachfolgenden Dimensionen gelten als Teil des Typs.Deshalb werden sie beim Unterscheiden zwischen überladenen Funktionen verwendet:

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

Siehe auch

Referenz

Übersicht des Überladens