Bonsoir.

Supposons qu'on ait défini une classe MonTypeNumerique qui admette un constructeur de conversion à partir du type (intégré, mais peu importe) int.

L'utilisateur peut alors écrire des choses comme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
int j = 3;
MonTypeNumerique MonNombre = j;
(Si je ne me trompe, c'est le constructeur de conversion qui intervient dans cette syntaxe, une surdéfinition de l'opérateur = n'a rien à voir ici.)

Bon, vous allez peut-être trouver ça futile, mais je n'aime pas la syntaxe de la seconde ligne du code ci-dessus, il me semble qu'elle risque de faire perdre de vue à l'utilisateur que les deux membres ne sont pas du même type.
J'aimerais donc mieux que l'utilisateur soit obligé d'écrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
MonTypeNumerique MonNombre(j);
ou peut-être
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
MonTypeNumerique MonNombre = MonTypeNumerique(j);
J'aimerais savoir s'il est possible d'empêcher la syntaxe

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
MonTypeNumerique MonNombre = j;

Merci d'avance pour les réponses.

M.