Partager via


Restrictions sur les fonctions surchargées

plusieurs restrictions régissent un ensemble acceptable de fonctions surchargées :

  • Deux fonctions à un autre dans un ensemble de fonctions surchargées doivent avoir différentes listes d'arguments.

  • Surchargeant fonctionne avec les listes d'arguments des mêmes types, selon le seul type de retour, est une erreur.

    Spécifique à Microsoft

Vous pouvez surcharger operator new uniquement en fonction de le type de retour - spécifiquement, en fonction de le modificateur de modèle de mémoire spécifié.

détail de FIN Microsoft

  • Les fonctions membres ne peuvent pas être surchargées uniquement en fonction utile d'un correspondant à statique et de l'autre non statique.

  • les déclarations d'typedef ne définissent pas de nouveaux types ; elles présentent des synonymes pour des types existants.N'affectent pas le mécanisme de surcharge.Prenons le code suivant :

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

    Les deux fonctions précédentes ont des listes d'arguments identiques.PSTR est un synonyme de le type char *.dans la portée membre, ce code génère une erreur.

  • les types énumérés sont les types distincts et peuvent être utilisés pour distinguer les fonctions surchargées.

  • Les types tableau « de » et « pointeur vers » sont considérés comme identiques pour les besoins de distinguer les fonctions surchargées.Ce principe est valable uniquement pour les tableaux séparément dimensionnés.par conséquent, les fonctions surchargées suivantes sont en conflit et génèrent un message d'erreur :

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

    Pour multipliez les tableaux dimensionnées, la deuxième et toutes les dimensions réussissantes sont considérées comme partie du type.par conséquent, elles sont utilisées en distinguant entre les fonctions surchargées :

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

Voir aussi

Référence

Vue d'ensemble de la surcharge