Attirant l'attention sur les fonctions membres statiques en C ++

UN fonction membre statique est, à bien des égards, juste une ancienne fonction plaine. La différence est que vous devez utiliser un nom de classe pour appeler une fonction statique. Mais rappelez-vous que la fonction de membre statique ne va pas avec un cas particulier d'un de classe par conséquent, vous ne devez pas spécifier une instance lorsque vous appelez la fonction statique.

Voici un exemple de classe avec une fonction statique:

publique: static string MyClassName () {return "! Gobstopper" -} int WhichGobstopper-Chew int (string name) {cout lt; lt; WhichGobstopper lt; lt; endl-cout lt; lt; nom lt; lt; endl-retour WhichGobstopper -}} -

Et voici un code qui prend l'adresse de la fonction statique et appelle à l'aide de l'adresse:

typedef string (* staticMember) () - staticMember staticfunc = Gobstopper :: MyClassName-cout lt; lt; staticfunc () lt; lt; endl-

Notez que dans la dernière ligne, vous ne disposez pas de se référer à une instance spécifique pour appeler staticfunc () - et vous ne l'avez pas besoin de se référer à la classe, soit. Vous avez juste appelait. Parce que la vérité est que profondément à l'intérieur, la fonction statique est juste une ancienne fonction plaine.


» » » » Attirant l'attention sur les fonctions membres statiques en C ++