Fonction du membre Invocation du pointeur: dissection de la syntaxe appropriée
Lorsque vous travaillez avec des pointeurs de fonction membre, il est crucial de respecter la syntaxe correcte pour assurer une exécution réussie. Plongeons-nous dans un problème typique rencontré lorsque vous essayons d'appeler une fonction membre via un pointeur de fonction membre et de fournir la solution nécessaire.
L'énippet de code erroné:
class cat { public: void walk() { printf("cat is walking \n"); } }; int main(){ cat bigCat; void (cat::*pcat)(); pcat = &cat::walk; bigCat.*pcat(); }
Erreur de compilation: le bigcat. * Pcat (); L'instruction génère une erreur.
Solution:
La clé pour résoudre ce problème réside dans la garantie de l'expression bigcat. * pcat () a la priorité appropriée. La priorité des opérateurs dicte que les opérateurs unaires ont priorité sur les opérateurs binaires. Ainsi, les parenthèses sont nécessaires pour hiérarchiser l'appel de la fonction () sur l'opération de liaison de pointeur. *.
(bigCat.*pcat)(); ^ ^
Enclosant l'appel de fonction dans les parenthèses garantit d'abord son exécution, suivie de la liaison de la fonction de fonction du membre. Les opérateurs.
Les parenthèses peuvent être utilisées pour contrôler la priorité des opérateurs et assurer une commande d'exécution correcte.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3