Lors d'une déclaration d'une classe, l'appel à un constructeur est automatique, il faut donc qu'il y ait concordance entre le nombre de paramètres du ou des constructeurs et le nombre de paramètres passés à la variable lors de la déclaration.
class x { int i,j ; public: x(int ii, int jj) ; } ; x::x(int ii,int jj) : i(ii),j(jj) {} int main(void) { x vx1(2,3) ; // ok x vx1= x(3,5) ; // ok x vx ; // declenche une erreur de compilation. ...Le programme ci-dessus déclenche une erreur car à la déclaration de la variable vx, le compilateur recherche une fonction constructeur sans paramètre qui n'existe pas.