Vererbungs Problem mit Template



  • Hallo,

    ich verstehe nicht warum ich über eine template klasse die methoden der geerbten basis_klasse verwenden kann?

    folgender code:

    template <class T>
    class Class : Basis_Klasse
    {
    	public:
                //hier folgen einige template implementierungen
    }
    
    class Basis_Klasse
    {
    
    	public:
    
    		int a;
    
                    void my_function();
    
    };
    

    in der main:

    Class<my_type> cl;
    
    //warum kann ich nicht die public methode der basis_klasse
    //die geerbt wird verwenden:
    
    cl.my_function();
    
    //???
    


  • public - auf die Methode darf von ausserhalb und von innerhalb der Klasse zugegriffen werden
    private - nur innerhalb der Klasse darf auf die Methode zugegriffen werden
    protected - aus der Klasse und allen abgeleiteten Klassen darf auf die Methode zugegriffen werden

    Na, faellt der Groschen? 🤡 😉


  • Mod

    Wenn du dir die Fehlermeldung deines Compilers durchliest, solltest du es selbst herausbekommen können. Du erbst private von deiner Basisklasse, es sollte sicher so sein:

    template <class T>
    class Class : public Basis_Klasse
    ...
    


  • 😃
    Ja - er ist gefallen - ich hirsch. Danke für die Aufklärung


Anmelden zum Antworten