Je suis récemment tombé sur une classe bizarre qui avait d'apparence trois constructeurs:Mot-clé explicite sur le constructeur multi-arg?
class Class
{
public:
explicit Class(int);
Class(AnotherClass);
explicit Class(YetAnotherClass, AnotherClass);
// ...
}
Cela ne veut pas vraiment de sens pour moi - je pensais que le mot-clé explicite est de protéger la construction du compilateur choisi à partir d'un type étranger.
Est-ce autorisé? Si c'est le cas, qu'est-ce que ça veut dire?
ce doublon a obtenu plus/meilleures réponses: [Pourquoi est explicitement autorisé pour les constructeurs par défaut et les constructeurs avec 2 ou plus de paramètres (non par défaut)?] (Https://stackoverflow.com/questions/4467142/why-is- explicit-allowed-for-default-constructors-et-constructors-with-2-or-more) –