C++ 使用共享的ptr从函数返回时类型转换 std::shared_ptr parse_input_fiz(char const*input){ std::共享ptr打印机(FizPrinter); 返回打印机; }
从AbstractPrinter继承的FizPrinter。我得到了下一个错误: 说明资源路径位置类型无法转换“打印机” 从“std::shared_ptr(*)(FizPrinter)”到 “std::shared_ptr”parser.cc/pdf-i/src第63行C/C++ 问题C++ 使用共享的ptr从函数返回时类型转换 std::shared_ptr parse_input_fiz(char const*input){ std::共享ptr打印机(FizPrinter); 返回打印机; },c++,casting,shared-ptr,C++,Casting,Shared Ptr,从AbstractPrinter继承的FizPrinter。我得到了下一个错误: 说明资源路径位置类型无法转换“打印机” 从“std::shared_ptr(*)(FizPrinter)”到 “std::shared_ptr”parser.cc/pdf-i/src第63行C/C++ 问题 此功能是工厂中使用的一种std::shared_ptr打印机(FizPrinter); std::shared_ptr<AbstractPrinter> parse_input_fiz(char
此功能是工厂中使用的一种
std::shared_ptr打印机(FizPrinter);
std::shared_ptr<AbstractPrinter> parse_input_fiz(char const *input) {
std::shared_ptr<FizPrinter> printer(FizPrinter);
return printer;
}
表示“打印机是带有参数FizPrinter的函数”
见问题10.21:std::共享打印机(FizPrinter);
表示“打印机是带有参数FizPrinter的函数”
见问题10.21:你的意思是什么
std::shared_ptr<FizPrinter> printer(FizPrinter);
std::共享打印机(新的FizPrinter());
您当前的代码声明了一个函数,而共享\u ptr
的构造函数接受一个指针。您的意思是
std::shared_ptr<FizPrinter> printer(FizPrinter);
std::共享打印机(新的FizPrinter());
您当前的代码声明了一个函数,而
shared\u ptr
的构造函数接受一个指针。或者更好的是,return std::make_shared()代码>或者更好,返回std::make_shared()代码>