我有一个正在创建对象的工厂,但我不确定返回这些对象的最佳方法是什么。我可以选择返回 unique_ptr<Trigger>
,或者我可以返回 Trigger
由 Move 构造函数处理。什么是更好的做法?我最好的猜测是 Move,因为你肯定会得到一个对象。
class TriggerFactory
{
public:
TriggerFactory();
~TriggerFactory();
Trigger createMyTrigger() const; // Trigger contains a move constructor
};
对比
class TriggerFactory
{
public:
TriggerFactory();
~TriggerFactory();
unique_ptr<Trigger> createMyTrigger() const;
};
最佳答案
工厂模式经常用于多态性:工厂将返回某种抽象类型的特定具体类型。在这种情况下,它必须返回一个指向堆分配实例的指针(否则返回值将被切片)。
关于c++ - 返回 unique_ptr 还是只是移动对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49370791/