Access Specifier überladen



  • In einer Basisklasse ist eine Variable als private deklariert. In der abgeleiteten Klasse wird die gleiche Variable als protected deklariert. Ist das dann die gleiche Variable und ich habe aus der abgeleiteten Klasse Zugriff auf die Variable der Basisklasse oder wird dabei eine neue Variable erzeugt?

    class A
    {
    private m_a;
    }
    
    classe B : public A
    {
    protected m_a;
    }
    

    Oder ergibt das einfach nur Mist?

    Danke im Voraus!
    Klaus


  • Mod

    Das ist (krasse Syntaxfehler mal ignoriert) eine neue Variable. Wie immer, wenn du neue Member in einer abgeleiteten Klasse definierst, egal was die Sichtbarkeit ist. Die neuen Member verdecken dann die gleichnamigen Member der Basisklasse, man kann aber weiterhin auf die Member das Basisklasse zugreifen, indem man den vollständigen Namen angibt. Oder hier eben nicht, weil sie private sind und man sowieso nicht an sie ran kommt.


Anmelden zum Antworten