J'ai un constructeurPourquoi le constructeur fonctionne-t-il avec de mauvais paramètres?
T(someClass<double> o);
La classe someClass
est initialisé par double* x
. C'est
someClass<double>(double * X);
Pourquoi les opérations suivantes fonctionnent-elles?
double * X=new X[10];
T obj(X);
Pourquoi ce travail, même si qu'il n'y a pas de constructeur pour T
, qui prend double *
comme argument (il devrait obtenir une instance de someClass
)? Est-ce que le compilateur initialise implicitement someClass, de double*
?
Merci beaucoup. Ca me rendait fou, et je ne trouvais rien sur google (comme je ne connaissais pas le terme convertisseur constructeur) ... Quand le minuteur le permettra, j'accepterai cette réponse. – LeastSquaresWonderer
Si vous ne voulez pas que votre constructeur soit utilisé pour des conversions implicites, déclarez-le avec 'explicit'. – melpomene