classen und rechte



  • Hallo,

    ich hab da mal eine frage zu klassen.

    class TTest
    {
       private: //
             int Var1;
       public: //??
             int Var2;
             int Var3;
    
    }
    
    class TWert
    {
       public:
           TTest Klasse1;
           TTest Klasse2;
    
       void Test()
       {
          Klasse1.Var1; //Komm ich nicht dran, ist OK
          Klasse1.Var2; //Komm ich dran
          Klasse1.Var3; // Komm ich dran
    
       }
    
    }
    
    TWert Wert;
    Wert.Klasse1.Var1; // Komm ich nicht dran ist auch ok
    Wert.Klasse1.Var2; //Komm ich nicht dran ist auch ok
    Wert.Klasse1.Var3; //Will ich nicht mehr dran kommen.
    

    Also ich will in TWert an Methoden von TTest dran, aber beim aufruf von TWert soll ich nicht mehr dran kommen.

    Ich hoffe es ist halbwegs verständlich geworden was ich meine. Wenn ich TTest dem TWert vererbe komm ich zwar dran, aber kann nicht mehrere Speicherbereiche von TTest anlegen.



  • Hallo

    Dann must du eben friend einsetzen.

    class TTest
    {
       friend class TWert; // Erlaubt TWert den Zugriff auf private Member
       private: 
             int Var1;
             int Var3; // Ist jetzt auch private
       public: 
             int Var2;
    
    }
    
    class TWert
    {
       public:
           TTest Klasse1;
           TTest Klasse2;
    
       void Test()
       {
          Klasse1.Var1; // geht
          Klasse1.Var2; // geht
          Klasse1.Var3; // geht
    
       }
    
    }
    
    TWert Wert;
    Wert.Klasse1.Var1; // geht nicht
    Wert.Klasse1.Var2; // geht nicht 
    Wert.Klasse1.Var3; // geht nicht
    

    bis bald
    akari



  • Danke, das hab gesucht.

    Hatte zwar was in dem Buch gelesen darüber aber nicht wirklich verstanden wie es eingesetzt wird.


Anmelden zum Antworten