Create an “UnusualClass” class in which direct and copy initialization produce different effects throughout. In particular, the attempt of direct or copy initialization should produce on the screen the print "Direct initialization" or "Copy initialization"
#include <iostream>
class UnusualClass{
public:
UnusualClass(const int &n){
std::cout<<"Copy initialization";
}
UnusualClass &operator=(const int &n){
std::cout<<"Direct initialization";
}
};
int main ()
{
UnusualClass k1(5); // Should print "Direct initialization"
UnusualClass k2 = 5; // Should print "Copy initialization"
return 0;
}
Why do I get copy initialization for both cases?
How to make UnusualClass k1(5);
prints "Direct initialization" and UnusualClass k2 = 5;
prints "Copy Initialization"?