Kein Zugriff auf protected member



  • Hallo,

    ich kann auf eine member methode nicht zugreifen und weiß nicht warum.

    class A{
    ...
    private:
     B bklasse;
    public:
     void ui_refresh();
    ....
    }
    A{
    A::A():bklasse(this){ }
    

    jetzt habe ich eine Klasse B die einen Zeiger der Klasse a hat.

    class B{
     public:
      B(A *aptr);
     private:
      A *a_ptr;
    ....
    }
    

    Nun möchte ich aus der Klasse B über den Zeiger a_ptr die Methode ui_refresh() ausführen lassen.

    a_ptr->ui_refresh();
    

    Bekomme aber folgenden Fehler:

    : 'A::ui_refresh' : cannot access protected member declared in class 'A'
    see declaration of 'A::ui_refresh'
    

    Mache ich etwas falsch?



  • Hi,

    Compiler schrieb:

    see declaration of 'A::ui_refresh'

    Nimm dir das nochmal zu herzen und schau nach, ob ui_refresh wirklich public ist, wie du uns hier weismachen willst.



  • Habs gefundenen.

    wxWidgets macht mal wieder Mist.

    public:	
    DECLARE_EVENT_TABLE();
    void ui_refresh(); // funktioniert nicht.
    
    public:
    void ui_refresh(); // funktioniert!
    DECLARE_EVENT_TABLE();
    

    Die sollten sich mal allmählich von diesen doofen Makros trennen.


Anmelden zum Antworten