Single Parameter Constructor If a class has a constructor with one parameter, then assignment statement uses this constructor to convert variable of this type into the object of the class. class A { public: A( int m) { cout << "constructor " << endl; } }; int main () { A obj1(3); int m = 100 ; obj1 = m; } Output : constructor constructor Here obj1 =m is calling the constructor with one int parameter. That is to say, the constructor is working as conversion operator. If you do not want assignment to call such a constructor, you can specify keyword explicit before constructor. class A { public: explicit A( int m) { cout << "constructor " << endl; } }; int main () { A obj1(3); int m = 100 ; obj1 = m; /*error*/ } In the code above, the constructor is defined as explicit. So it can not be used for implicit conversion. So obj1=m can not use constructor and gives a compil...