Explicit type conversion

Write a  program to show a use case of explicit type conversion.

#include<iostream>
using namespace std;
class A
{
	private:
		int num;
	public:
		A():num(0)
		{
			cout << "default constructor" << endl;
		}
		~A()
		{
			cout << "destructor" << endl;
		}
		explicit A(int x):num(x)
		{
			cout << "parameterized constructor" << endl;
		}
		void print()
		{
			cout << "num = " << num << endl;
		}
};
int main()
{
	A ob1,ob2(37),ob3;
	A ob4;
	//A ob5 = 87;//invalid
	//ob3 = 85;//invalid
	ob1.print();
	ob2.print();
	ob3.print();
	ob4.print();
	return 0;
}

Output

default constructor
parameterized constructor
default constructor
default constructor
num = 0
num = 37
num = 0
num = 0
destructor
destructor
destructor
destructor