Maison  >  Article  >  développement back-end  >  Les fonctions membres peuvent-elles être surchargées ?

Les fonctions membres peuvent-elles être surchargées ?

青灯夜游
青灯夜游original
2020-07-17 10:31:185872parcourir

Les fonctions membres peuvent être surchargées ; mais les fonctions membres ne peuvent surcharger que les autres fonctions membres de cette classe. Les fonctions membres d'une classe ne sont pas liées aux fonctions non membres ordinaires et aux fonctions déclarées dans d'autres classes, et elles ne peuvent pas être surchargées.

Les fonctions membres peuvent-elles être surchargées ?

Les fonctions membres peuvent être surchargées

Les fonctions membres ne peuvent surcharger que les autres fonctions membres de cette classe. Les fonctions membres d'une classe ne sont pas liées aux fonctions non membres ordinaires et aux fonctions déclarées dans d'autres classes, et elles ne peuvent pas être surchargées. Les mêmes règles s'appliquent aux fonctions membres surchargées qu'aux fonctions ordinaires : le nombre et le type de paramètres formels de deux membres surchargés ne peuvent pas être exactement les mêmes. Le processus de correspondance de fonctions utilisé pour les appels aux fonctions surchargées non membres s'applique également aux appels aux fonctions membres surchargées.

Définir des fonctions membres surchargées

Pour illustrer la surcharge, deux membres surchargés de la classe Screen peuvent être donnés pour renvoyer un caractère spécifique à partir de la fenêtre. Parmi les deux membres surchargés, une version renvoie le caractère indiqué par le curseur actuel et l'autre renvoie le caractère à la ligne et à la colonne spécifiées :

class Screen {
public:
typedef std::string::size_type index;
// return character at the cursor or at a given position
char get() const { return contents[cursor]; }
char get(index ht, index wd) const;
// remaining members
private:
std::string contents;
index cursor;
index height, width;
};

Comme pour toute fonction surchargée, fournissez le nombre et le type appropriés de paramètres réels pour choisir la version à exécuter :

Screen myscreen;
char ch = myscreen.get();// calls Screen::get()
ch = myscreen.get(0,0); // calls Screen::get(index, index)

Tutoriel recommandé : "Tutoriel vidéo c++"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn