Maison >développement back-end >C++ >Comment puis-je créer un constructeur de modèles sans paramètre en C ?

Comment puis-je créer un constructeur de modèles sans paramètre en C ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-03 03:54:08221parcourir

How Can I Create a Parameterless Template Constructor in C  ?

Modèles de constructeur sans paramètres

En C , il n'est pas possible de déclarer directement un constructeur de modèle sans paramètres. En effet, un conflit survient avec le constructeur par défaut.

Une solution de contournement possible consiste à créer un paramètre factice dans le constructeur du modèle :

class A{
   template <typename U> A(U* dummy) {
       // Do something
   }
};

Limitations de la solution de contournement

Cependant, cette solution de contournement présente des limites :

  • Les arguments du modèle ne peuvent pas être explicitement spécifiés lorsque appeler le constructeur, car ils doivent être déduits par déduction d'arguments.
  • Vous devez toujours passer un argument pour invoquer le modèle de constructeur.

Approches alternatives

Pour obtenir la fonctionnalité souhaitée sans ces inconvénients, considérez ce qui suit alternatives :

  • Utilisation des valeurs par défaut dans le constructeur de classe : Définissez un constructeur par défaut avec des valeurs par défaut pour les paramètres souhaités.
  • Utilisation des fonctions d'usine : Créez des fonctions d'usine statiques qui acceptent les arguments souhaités et renvoient des instances de la classe.

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