Maison >développement back-end >C++ >Une classe sans modèle peut-elle avoir un constructeur de modèle sans paramètre ?

Une classe sans modèle peut-elle avoir un constructeur de modèle sans paramètre ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-26 18:54:14295parcourir

Can a Non-Template Class Have a Parameterless Template Constructor?

Un constructeur de modèle sans paramètre est-il possible ?

Question :

Un non-modèle peut-il la classe a-t-elle un constructeur de modèle sans arguments ? Est-il vrai qu'il est en conflit avec le constructeur par défaut ?

Réponse :

Spécifier explicitement les arguments du modèle n'est pas possible lors de l'appel d'un modèle de constructeur. Ils sont déduits par déduction argumentative. L'appel de Foo() attribue la liste d'arguments du modèle au type Foo, pas au constructeur.

La solution de contournement que vous avez suggérée nécessite toujours la transmission d'un argument pour appeler le modèle de constructeur. On ne sait pas quel est votre objectif dans ce scénario.

Une alternative consiste à utiliser un constructeur par défaut au lieu d'un constructeur de modèle sans arguments. Si la classe non-modèle a d'autres constructeurs, l'utilisation d'un constructeur de modèle par défaut avec des parenthèses vides () peut éviter l'ambiguïté des paramètres.

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