#include<iostream>
class Base{};
class Derived : public Base
{
public:
Derived(){}
Derived(const Base &rhs)
{
std::cout<<"\n In conversion constructor";
}
const Derived &operator=(const Base &rhs)
{
std::cout<<"\n In operator=";
return *this;
}
};
void doSomething(Derived obj)
{
std::cout<<"\n In doSomething";
}
int main()
{
Base obj1;
doSomething(obj1);
Derived obj2;
obj2 = obj1;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CmNsYXNzIEJhc2V7fTsKY2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBCYXNlCnsKICAgcHVibGljOgogICAgRGVyaXZlZCgpe30KICAgIERlcml2ZWQoY29uc3QgQmFzZSAmcmhzKQogICAgewogICAgICAgIHN0ZDo6Y291dDw8IlxuIEluIGNvbnZlcnNpb24gY29uc3RydWN0b3IiOwogICAgfQogICAgY29uc3QgRGVyaXZlZCAmb3BlcmF0b3I9KGNvbnN0IEJhc2UgJnJocykKICAgIHsKICAgICAgICBzdGQ6OmNvdXQ8PCJcbiBJbiBvcGVyYXRvcj0iOwogICAgICAgIHJldHVybiAqdGhpczsKICAgIH0KfTsKCnZvaWQgZG9Tb21ldGhpbmcoRGVyaXZlZCBvYmopCnsKICAgIHN0ZDo6Y291dDw8IlxuIEluIGRvU29tZXRoaW5nIjsKfQppbnQgbWFpbigpCnsKICAgIEJhc2Ugb2JqMTsKICAgIGRvU29tZXRoaW5nKG9iajEpOwoKCiAgICBEZXJpdmVkIG9iajI7CiAgICBvYmoyID0gb2JqMTsgICAgCiAgICByZXR1cm4gMDsKfQ==