Bonjour.
Je me retrouve confronté à un problème utilisateur mineur, mais toutefois dérangeant:
j'ai défini une classe comme cela:
1 2 3 4 5 6 7 8 9
| class A
{
public:
A(unsigned int a);
...
private:
explicit A(int a);
}; |
le constructeur en private me sert en effet à construire un objet de manière plus optimale qu'avec le constructeur public (qui fait un certains nombre de vérifications.).
Le problème est que du coup, si je déclare un objet, le codeme renvoie une erreur puisque 26 est considéré comme un int et non un unsigned, et que le constructeur sur int est private.
Je suis alors obligé de construire mes objets comme cela:
A objet(static_cast<unsigned int>(26));
ce qui est quand même un peu lourd...
J'en viens donc à ma question: Comment faire en sorte que le constructeur public accepte des ints positifs sans pour autant se débarasser du constructeur private....
si vous avez une idée...
Merci
Partager