50 Stimmen

Standardzugriff auf Klassenvererbung

Angenommen, ich habe eine Basis- und eine abgeleitete Klasse:

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

class Derived:Base
{
    public:
    virtual void Do();
}

int main()
{
    Derived sth;
    sth.Do(); // calls Derived::Do OK
    sth.Base::Do(); // ERROR; not calls Based::Do 
}

wie gesehen möchte ich Base::Do durch Derived zugreifen. Ich erhalte einen Kompilierfehler als "Klasse Base in unzugänglich" jedoch, wenn ich Derive deklarieren als

class Derived: public Base

funktioniert es gut.

Ich habe gelesen, dass der Standardvererbungszugriff öffentlich ist, warum muss ich dann hier explizit öffentliche Vererbung deklarieren?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X