Appel du constructeur de classe de base
Tout en travaillant avec l'héritage en Java, vous pouvez invoquer le constructeur de superclasse en utilisant super(). Cela soulève la question de savoir comment obtenir la même fonctionnalité en C.
Plus précisément, le problème se pose lors de l'héritage d'une classe de base C avec un constructeur autre que celui par défaut. Le compilateur avertit souvent de l'absence d'un constructeur par défaut approprié.
Solution : utiliser la liste d'initialisation du constructeur
Contrairement à Java, C n'a pas de super() explicite syntaxe pour appeler le constructeur de la classe de base. Au lieu de cela, vous spécifiez l’appel dans la liste d’initialisation du constructeur de la classe dérivée. La liste d'initialisation apparaît avant le corps du constructeur et est utilisée pour initialiser les variables membres.
Par exemple, considérons la classe de base suivante avec un constructeur qui prend un tableau de caractères comme argument :
class BaseClass { public: BaseClass(char *name); ... };
Pour appeler le constructeur de la classe de base dans la classe dérivée, incluez l'appel dans la liste d'initialisation :
class Foo : public BaseClass { public: Foo() : BaseClass("asdf") {} };
Cela garantit que le constructeur de la classe de base est invoqué avant que toute autre initialisation de membre ne se produise. Comme les constructeurs de la classe de base acceptent des arguments, ils doivent être spécifiés dans la liste d'initialisation avant que les variables membres ne soient initialisées.
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!