Implémentation des fonctions virtuelles pures
Malgré la compréhension commune selon laquelle les fonctions virtuelles pures manquent d'implémentations, certaines situations permettent une implémentation au sein de la classe de base . Considérez le code suivant :
class A { public: virtual void f() = 0; }; void A::f() { cout << "Test" << endl; }
Bien que ce code semble violer le principe des fonctions virtuelles pures, il est en fait valide. Cependant, cela soulève deux questions importantes :
1. Le code est-il valide ?
Oui, le code est une syntaxe valide. La classe de base A peut définir une implémentation pour sa fonction virtuelle pure f(), même si les classes dérivées doivent également fournir leurs propres implémentations.
2. Objectif de la fonction virtuelle pure avec implémentation :
Il existe plusieurs raisons potentielles de définir une implémentation pour une fonction virtuelle pure :
Il est important de noter que même si cette fonctionnalité de langage est autorisée, elle n'est pas couramment utilisée. Cependant, cela peut être un outil utile dans certains scénarios où une implémentation par défaut ou partagée est souhaitée.
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!