Я создаю какой-то фабричный метод, который возвращает DerivedClass
как BaseClass
следующим образом:
BaseClass Factory()
{
return DerivedClass();
}
Прав ли я, что конструктор перемещения BaseClass
используется, когда я вызываю этот метод:
BaseClass object = Factory();
Поскольку я не могу сделать конструктор перемещения из BaseClass
virtual
, есть ли другой способ заставить конструктор перемещения из DerivedClass
быть взятым?
Edit1: дополнительная информация - я уже думал о указателях. Но дело в том, что я хочу экспортировать фабричную функцию в DLL, и я хотел сделать ее максимально простой для пользователя. Стандартные указатели могут привести к утечке памяти, и, с другой стороны, не все знакомы с умными указателями.
Edit2: Насколько я понял, реальный вопрос был: работает ли полиморфизм и с возвратом по значению?
И ответ НЕТ.