gpt4 book ai didi

c++ - 返回 unique_ptr 还是只是移动对象?

转载 作者:太空宇宙 更新时间:2023-11-04 14:29:16 26 4
gpt4 key购买 nike

我有一个正在创建对象的工厂,但我不确定返回这些对象的最佳方法是什么。我可以选择返回 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com