Измените Базовый класс на: class Base
{
public:
Base(const MyType &obj) { /* do something with the obj */}
};
Обновление: если вы хотите изменить obj, у вас явно не может быть ссылки const
.В этом случае вы можете либо:
1) передать параметр по значению.Это приведет к дополнительным издержкам для копии, но избегайте ее явного освобождения позже.
2) Измените MyOtherType::getMyTypeObj()
на
MyType& MyOtherType::getMyTypeObj()
{
MyType* obj = new MyType();
obj->setData( /* blah, blah, blah... Some data */);
return *obj;
}
В этом случаене забудьте удалить объект после того, как с ним покончено.