我不是C ++人,但我正在努力学习。我真的不懂语言,所以我不确定要搜索什么,或者如何提出这个问题。我能做的最好的是以下例子:
定义泛型类:
class IPlugin
{
public:
virtual void go(const Image &src, Image &dst) = 0;
}
然后是两个'插件'
class pluginDenoise : public IPlugin
{
public:
virtual void go(const Image &src, Image &dst)
{
denoise(src, dst);
}
}
class pluginDeblur : public IPlugin
{
public:
virtual void go(const Image &src, Image &dst)
{
deblur(src, dst);
}
}
我现在想要定义一个通用框架,例如:
class Processor
{
public:
Processor(IPlugin &unknown_plugin)
{
Image src = imRead("inpImage.jpg");
Image dst;
unknown_plugin.go(src, dst);
imWrite(dst, "outImage.jpg");
}
}
从主代码中,我想称之为
int main()
{
pluginDeblur d;
Processor p(d);
}
我理解这段代码不会编译......这甚至叫什么?这可能吗?