protected wird nicht als member anerkannt?



  • hallo

    bin gerade echt verwirrt - wieso wird jetzt eine protected variable nicht als member einer abgeleiteten klasse gesehen?

    class A
    {
        protected:
            int i;
    };
    
    class B : public A
    {
        public:
            B ( int n ) : i ( n ) { }
    };
    

    ind der compeiler sagt dazu

    In constructor ‘B::B(int)’:
    error: class ‘B’ does not have any field named ‘i’

    Was ist passiert? Sollten protected variablen nicht mitvererbt werden?



  • In der Initialisierungsliste kannst du nur die Member der eigenen Klasse und die Basisklasse verwenden - für die Initialisierung von i wäre deshalb der Konstruktor von A verantwortlich.



  • Aso, danke - dachte ich mir schon dass es dafür eine einfache Erklärung geben wird 🙂


Anmelden zum Antworten