C2594: Mehrdeutige Konvertierung einer Klasse



  • Hi, gibt es für dieses Problem eine Lösung? Das Problem ist, dass Test nichts von abgeleiteten Klassen wissen soll.

    class Base
    {
    public:
    	Base() {};
    };
    
    class Derived : public Base
    {
    public:
    	Derived() {};
    };
    
    class IInterface : public Base
    {
    public:
    	IInterface() {};
    };
    
    class Final : public Derived, public IInterface
    {
    public:
    	Final() {};
    };
    
    void Test(Base* ptr)
    {
    }
    
    int main()
    {
    	Final* ptr = new Final();
    	Test(ptr);
    }
    


  • Virtuell von Base erben
    Nach Derived oder IInterface casten

    Das Diamondproblem verstehen und vermeiden


Anmelden zum Antworten