Dans la programmation orientée objet utilisant C , un constructeur est une fonction membre spéciale qui initialise un objet. Bien que les constructeurs puissent être définis comme des modèles, permettant un comportement d'initialisation générique, il est souvent souhaitable de spécifier explicitement les paramètres du modèle lors de l'appel du constructeur.
Une classe appelée A sert d'exemple simple :
struct A { template<typename T> A() {} };
Le code ci-dessus définit un constructeur de modèle qui accepte un type de données générique T. Cependant, lors de l'appel de ce constructeur, le compilateur s'appuie généralement sur la déduction de type à partir des arguments fournis. La question se pose : existe-t-il un moyen de spécifier explicitement les paramètres du modèle du constructeur ?
Malheureusement, la réponse est non. Selon la norme C 03, "il n'existe aucun moyen de fournir une liste d'arguments de modèle explicite pour ces modèles de fonctions". En effet, la liste d'arguments explicites du modèle suit le nom du modèle de fonction et les modèles de fonctions membres de conversion et les modèles de fonctions membres de constructeur sont appelés sans utiliser de nom de fonction.
Remarque : Ce comportement peut différer. dans les versions plus récentes de C . Consultez la norme ou la documentation de la version spécifique de C que vous utilisez pour vérifier.
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!