C ++: Derived + Base de classe implémenter une seule interface?

En C++, est-il possible d'avoir une base plus classe dérivée de mettre en œuvre une interface unique?

Par exemple:

class Interface
{
    public:
        virtual void BaseFunction() = 0;
        virtual void DerivedFunction() = 0;
};

class Base
{
    public:
        virtual void BaseFunction(){}
};

class Derived : public Base, public Interface
{
    public: 
        void DerivedFunction(){}
};

void main()
{
    Derived derived;
}

Cela échoue, car Dérivé ne peut pas être instanciée. Aussi loin que le compilateur est concerné Interface::BaseFunction n'est jamais défini.

Jusqu'à présent la seule solution que j'ai trouvé serait de déclarer un passage à travers la fonction de Dérivées

class Derived : public Base, public Interface
{
    public: 
        void DerivedFunction(){}
        void BaseFunction(){ Base::BaseFunction(); }
};

Est-il une meilleure solution?


EDIT: Si c'est important, ici, c'est un réel problème que j'ai eu l'aide de MFC boîtes de dialogue.

J'ai une classe de boîte de dialogue (MyDialog permet de dire) dérivée de CDialog. En raison de problèmes de dépendance, j'ai besoin de créer une interface abstraite (MyDialogInterface). La classe qui l'utilise MyDialogInterface doit utiliser les méthodes spécifiques à MyDialog, mais aussi des besoins à l'appel de CDialog::SetParent. Je viens de résoudre par la création de MyDialog::SetParent et en la faisant passer à travers CDialog::SetParent, mais je me demandais si il y avait une meilleure façon.

source d'informationauteur Joe