在工厂中返回unique_ptr

little_planet

也许这是一个简单的问题,因为我还是C ++的新手。我想使用某种工厂将日志记录封装在我的应用程序中。这个想法是,只有工厂知道哪个具体类将处理函数调用。应用程序将始终调用基本日志记录类的抽象接口。

工厂方法应如下所示:

std::unique_ptr<AbstractLoggingClass> Factory::getDefaultLogger(const std::string& param){
    return new ConcreteLoggingClass(param);
}

ConcreteLoggingClass是的子类AbstractLoggingClass

但是我收到以下错误:

Error: could not convert '(operator new(64ul), (<statement>,
((ConcreteLoggingClass*)<anonymous>)))' from 'ConcreteLoggingClass*'
to 'std::unique_ptr<AbstractLoggingClass>'

我的问题是,我不知道如何实例化ConcreteLoggingClass并返回unique_ptrAbstractLoggingClass

我已经找到了这篇文章,但仍然看不到解决方案。

弗里希·拉贝(Frerich Raabe)

std::unique_ptr您想要构造函数是explicit,因此您需要……很好……对此明确。尝试

return std::unique_ptr<AbstractLoggingClass>(new ConcreteLoggingClass(param));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从工厂方法返回 unique_ptr ?

来自分类Dev

在声明为返回unique_ptr <Base>的函数中返回unique_ptr <Derived>

来自分类Dev

带有 unique_ptr 的工厂模式

来自分类Dev

无法返回unique_ptr

来自分类Dev

从工厂方法返回的const unique_ptr是否不需要null检查?

来自分类Dev

使用 unique_ptr 保证工厂中的唯一对象

来自分类Dev

在C ++中使用unique_ptr的工厂模式

来自分类Dev

工厂,unique_ptr和static_cast

来自分类Dev

如何正确返回unique_ptr的集合

来自分类Dev

从 unique_ptr 返回 const ref

来自分类Dev

返回本地unique_ptr作为shared_ptr

来自分类Dev

unique_ptr用法,从集合中获取

来自分类Dev

C ++ 11中unique_ptr的向量

来自分类Dev

pimpl成语中的ABI与unique_ptr

来自分类Dev

unique_ptr列表中的访问冲突

来自分类Dev

移动unique_ptr后,std :: unique_ptr :: get返回的值是否有效?

来自分类Dev

为什么不能从一对中返回unique_ptr?

来自分类Dev

为什么在MSVC12中is_copy_constructible对于unique_ptr返回true

来自分类Dev

从函数返回的std :: unique_ptr中的抽象类不起作用

来自分类Dev

容器和算法中的auto_ptr与unique_ptr

来自分类Dev

Deleter类型在unique_ptr与shared_ptr中

来自分类Dev

容器和算法中的auto_ptr与unique_ptr

来自分类Dev

C ++ std :: unique_ptr从函数返回并测试null

来自分类Dev

如何返回对包含nullptr的unique_ptr的引用

来自分类Dev

铛,返回带有类型转换的std :: unique_ptr

来自分类Dev

从unique_ptr返回原始指针是否正确?

来自分类Dev

如何使用捕获的unique_ptr返回Lambda

来自分类Dev

从函数返回对内的unique_ptr后的分段错误

来自分类Dev

返回 unique_ptr 指向值的副本向量

Related 相关文章

热门标签

归档