Maison >développement back-end >C++ >Comment appeler un constructeur de classe de base en C ?

Comment appeler un constructeur de classe de base en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-26 08:23:08545parcourir

How to Call a Base Class Constructor in C  ?

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!

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