I am trying to make a factory method, but it is currently throwing an error:
coreloadersloader.cpp:11:12: error: cannot convert Jpeg to Loader* in assignment
15 | loader = Jpeg(path);
| ^~~~~~~~~~
| |
| Jpeg
我谨交回一个来自<代码>Loader的班子,在这种情况下,该班将成为<代码>。 Jpeg。 如下文守则所示,它的确扩大了<代码>Loader的类别,而我所读的是,你可以使用基类的点子,确定基类,然后回来,因此,我试图这样做,但没有成功。 我如何使工厂返回Png
。)
我的洛纳德领导和来源:
// loader.h
class Loader {
public:
static Loader* get(char* path);
};
// loader.cpp
Loader* Loader::get(char* path) {
string pathStr(path);
pathStr = pathStr.substr(pathStr.rfind(".") + 1);
Loader* loader;
if (pathStr == "jpeg" || pathStr == "jpg") {
loader = Jpeg(path);
}
return loader;
}
<代码>Jpeg 其后各班次延长<代码>Loader:
class Jpeg : public Loader {
protected:
char* path;
public:
Jpeg(char* path) {
this->path = path;
}
};