std::shared_ptr<AbstractPrinter> parse_input_fiz(char const *input) {
std::shared_ptr<FizPrinter> printer(FizPrinter);
return printer;
}
FizPrinter继承自AbstractPrinter。然后我得到了下一个错误:
说明资源路径位置类型无法转换'打印机' 从'std :: shared_ptr(*)(FizPrinter)'到 'std :: shared_ptr'searser.cc / pdf -i / src第63行C / C ++ 问题
此功能用于工厂
答案 0 :(得分:4)
你的意思是
std::shared_ptr<FizPrinter> printer(new FizPrinter());
您当前的代码声明了一个函数,shared_ptr
的构造函数接受了一个指针。
答案 1 :(得分:2)
std::shared_ptr<FizPrinter> printer(FizPrinter);
表示“打印机是带参数FizPrinter的函数”。