Conversion constructors in C++ - Exercise Results
Here is one solution to this exercise:
1. The two constructors
ch_stack(const char* c);
explicit ch_stack(int size);
are conversion constructors.
The use of the keyword explicit in front of ch_stack(int size) suppresses undesirable implicit conversion.
2. The lines
ch_stack a = 'a'; //1
ch_stack d = 10; //4
are error-prone because ch_stack(int size) is declared as an explicit constructor and there is no implicit conversion available.