Multiple Klassenableitung

Tech-Archive recommends: Fix windows errors by optimizing your registry



Hallo Forum,

auch wenn mein folgendes Problem eher in eine C++-Sprachennewsgroup gehört, stelle ich sie trotzdem hier. Irgendwie ist mir das zu blöd, für nur 1 Frage eine Extragruppe zu laden.
Nun gut:

struct IBase
{
virtual void BaseFoo()=0;
};

struct IDerived: public IBase
{
virtual void DerivedFoo()=0;
};

class CBaseImpl: public IBase
{
void BaseFoo() {};
};

class UseInterfaces: public CBaseImpl, public IDerived
{
void DerivedFoo() {};
};

Ich kann nun keine Objekte von UseInterfaces erstellen, da die virtuellen Funktionen von IDerived nicht implementiert sind. Wie bekomme ich meinen C++-Compiler dazu, dass er die Implementierung von IBase in CBaseImpl auch für IDerived nimmt? Meines Wissens geht das nur über virtuelle Vererbung, was aber ausfällt, da ich die Interface-Ableitungsketten nicht ändern kann.

MfG
Andreas

PS: Wen das an COM und ATL erinnert, liegt richtig. Allerdings gefällt mir das MFC- und ATL-Makrogehacke immer weniger. ;-)

.



Relevant Pages

  • Re: Multiple Klassenableitung
    ... Ich finde es halt nur komisch, dass sich der Compiler mit einer IBase-Implementierung zufriedengibt, wenn man sie in die Klasse UseInterfaces schreibt, aber nicht die CBaseImpl in die VTBL von IDerived schreiben kann. ... struct IDerived: public IBase ...
    (microsoft.public.de.vc)
  • Re: Multiple Klassenableitung
    ... struct IDerived: public IBase ... class UseInterfaces: public CBaseImpl, public IDerived ... Ich kann nun keine Objekte von UseInterfaces erstellen, da die virtuellen Funktionen von IDerived nicht implementiert sind. ...
    (microsoft.public.de.vc)
  • Re: Multiple Klassenableitung
    ... class UseInterfaces: public CBaseImpl, public IDerived ... Meines Wissens geht das nur über ...
    (microsoft.public.de.vc)