如何从函数调用泛型派生类函数,而不明确说明它是什么

时间:2012-07-05 21:37:28

标签: c++ derived-class base-class

我不是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);
}

我理解这段代码不会编译......这甚至叫什么?这可能吗?

0 个答案:

没有答案