Objekt in anderer Klasse aufrufen... nur wie?



  • Hallo habe folgendes Problem... hier ein Beispielcode:

    Klassendef:
    class T1
    {
    ...
    }

    Headerdatei1:
    void T1::ta() {...}
    -------------------------
    Klassendef:
    class T2
    {
    ...
    }

    Headerdatei2:
    #include "T1.h"

    T1 test; <------ Objekt
    void T2::tb() {...}
    ------------------------
    Klassendef:
    class T3
    {
    ...
    }

    Headerdatei3:

    #include "T1.h"
    #include "T2.h"

    void T3::tc()
    {
    test.ta() <----------Genau das bekomme ich nicht hin?
    }
    ------------------------

    Kann mit da jmd. weiterhelfen?
    Ich erstelle in T2.h ein Objekt von T1 und möchte in T3.h auf dieses Objekt zugreifen???

    T1 test;



  • try this

    #include "T1.h"
    #include "T2.h"
    
    class T3{
    public:
    void tc();
    ...
    private:
    T1 test;
    };
    
    void T3::tc()
    {
    test.ta()
    }
    

    aber was du bisher gezeigt hast sieht irgendwie schei ße aus. Sag mal eher was du machen willst dan kann man dir besser helfen. 👍



  • @chris du verwechselst header mit cpp dateien 🙂



  • @Mosta: war nicht genau mein Problem.
    Ok... war gestern so spät, hier ne Korrektur meiner Frage:

    In Klasse T1 wird z.B. ein Vektor durch eine Methode definiert. In T2 ein Objekt dieser Klasse T1 und ich muss nun von T3 auf diesen Vektor zugreifen können. Bekomme das nicht hin....

    class T1
    {
      public:
         void ta();
      ...
      private:
      ...
    };
    
    void T1::ta()
    {
      ...
    }
    
    #include "T1.h"
    
    class T2
    {
      public:
         void tb();
      ...
      private:
         T1 test; 
    };
    
    void T3::tb()
    {
      test.ta()     <--- funktioniert, ok!
    }
    
    #include "T1.h"
    #include "T2.h"
    
    class T3
    {
      public:
         void tc();
      ...
      private:
    };
    
    void T3::tc()
    {
      test.ta()     <--- funktioniert NCIHT,warum oder wie?!
    }
    


  • Klassen sind nunmal gekapselte Objekte, dh T3 kennt T2 nicht. Deshalb kannst du auch nicht einfach so darauf zugreifen. Ausserdem ist test noch private, dh ohne friend kann da 'eh nur T2 darauf zugreifen.



  • in dem header file kannst du mit dem schlüsselwort "extern" objekte exportieren


Anmelden zum Antworten