从带有shared_ptr的函数返回时进行类型转换
type casting when return from function with shared_ptr
std::shared_ptr<AbstractPrinter> parse_input_fiz(char const *input) {
std::shared_ptr<FizPrinter> printer(FizPrinter);
return printer;
}
继承了AbstractPrinter。我得到了下一个错误:
描述资源路径位置类型无法转换"打印机"从' std::shared_ptr (*)(FizPrinter) '到"std::要查看"解析器。cc/pdf-i/src行63 C/c++问题
你是说
std::shared_ptr<FizPrinter> printer(new FizPrinter());
您当前的代码声明了一个函数,并且shared_ptr
的构造函数接受一个指针。
std::shared_ptr<FizPrinter> printer(FizPrinter);
表示"printer是一个参数为FizPrinter的函数"。
参见问题10.21:http://www.parashift.com/c++-faq-lite/ctors.html
相关文章:
- 基于返回类型的转换和过载扣除
- 用户定义的转换无法指定返回类型
- 类型转换问题:返回为整数而不是浮点/类型
- 如何定义依赖于参数包转换的函数的返回类型
- 从类型bankAccount的返回值到函数返回类型int没有可行的转换
- 为什么用户定义的转换函数模板不能有推导的返回类型?
- 如何将两个 jlong 数据类型转换为 jstring,然后将两个字符串连接在一起以便从 JNI 将字符串返回给 jav
- 是否可以将一种函数类型转换为另一种采用相同参数但返回类型不同的函数类型
- 使用类型转换在 C++ 中返回 2D 数组
- 协变返回类型无效的转换错误
- 当我使用模板时,编译器无法将函数的返回类型从 double 转换为 int
- 我的程序返回整数值,但即使在显式类型转换之后也应该给出双值
- clang,返回带有类型转换的std::unique_ptr
- 协变返回类型和类型转换
- 函数指针和返回类型转换
- 未知类方法回调,它接受 0 个参数并返回可转换为 int 的类型
- 返回类型 std::bind 隐式转换为两个不同的显式构造函数
- lambda 函数的返回类型是 lambda []X ()->X,不能转换为 X
- 为什么我们需要从基类型转换为派生类型并返回
- 'decltype':函数返回类型"T"转换为用户定义类型的"T&"(VS2010)