Zugriff auf geerbtes Klassenelement nicht möglich



  • Hi,

    mein Compiler sagt:

    Zugriff auf "TMyClass1::Elem" nicht möglich

    Die Verhältnisse sehen so aus:

    class TMyClass1
    {
        private:
            void *Elem;
        ...    
    };
    
    class TMyClass2 : public TMyClass1
    {
        ...
        public:
            int *Elem2;
            TMyClass2()
            {
                Elem = Elem2; //hier meckert er
            }
        ...
    };
    

    Wieso meckert der Compiler? 😕 Wenn ich mit public vererbe bleiben doch die Schutzattribute unverändert und TMyClass2 müßte doch als private-Member auch Elem haben oder nicht? 😕



  • Wenn du es protected machst ( in der Basisklasse ) können die Kinder drauf zugreifen 🙂

    class TMyClass1
    {
        protected: // <---- hier
            void *Elem;
        ...    
    };
    

    MfG



  • nö, das ist bei protected der fall, nicht bei private.

    Edit: Bäh, zu langsam...


Anmelden zum Antworten