0

私はC++の人ではありませんが、学ぼうとしています。専門用語がよくわからないので、何を検索すればいいのか、どうやって質問したらいいのかわかりません。私ができる最善のことは、次の例を提示することです。

ジェネリッククラスを定義します。

class IPlugin
{
public:
    virtual void go(const Image &src, Image &dst) = 0;
}

次に2つの「プラグイン」

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);
}

このコードはコンパイルされないことを理解しています...これは何と呼ばれていますか?これは可能ですか?

4

0 に答える 0