Maison > développement back-end > C++ > le corps du texte

Comment appeler un constructeur de classe de base en C ?

Linda Hamilton
Libérer: 2024-11-26 08:23:08
original
525 Les gens l'ont consulté

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);
    ...
};
Copier après la connexion

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") {}
};
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal