#include <iostream>
class MyClass {
public:
explicit MyClass(int x) {
std::cout << "Constructor called with " << x << std::endl;
}
};
void printMyClass(const MyClass& obj) {
std::cout << "In printMyClass function" << std::endl;
}
int main() {
// MyClass obj = 42; // Error: Implicit conversion is not allowed
MyClass obj1(42); // OK: Direct initialization is allowed
// printMyClass(100); // Error: Implicit conversion is not allowed
printMyClass(MyClass(100)); // OK: Explicit conversion is required
return 0;
}