Headerfiles miteinander kommunizieren



  • Hey,
    hätte noch eine Frage:
    Wie kann ich es erreichen, dass zwei Headerfiles miteinander kommunizieren?
    ich habe in einer Headerfile eine neue Struktur erstellt.
    Wird jedoch in der anderen Headerdatei nicht gefunden.
    Wenn ich sie gegenseitig in das jeweils andere inkludiere, geht es nicht.
    Warum? 🙂



  • Tomsen1410 schrieb:

    Hey,
    hätte noch eine Frage:
    Wie kann ich es erreichen, dass zwei Headerfiles miteinander kommunizieren?
    ich habe in einer Headerfile eine neue Struktur erstellt.
    Wird jedoch in der anderen Headerdatei nicht gefunden.
    Wenn ich sie gegenseitig in das jeweils andere inkludiere, geht es nicht.
    Warum? 🙂

    Weil du include-guards hast. Google sie.


  • Mod

    Mit Forward-Deklarationen:

    a.h:

    class B;
    
    class A 
    {
     void foo(B);
    };
    

    b.h:

    #include "a.h" // Oder auch class A;, da du hier kein konkretes A-Objekt hast
    
    class B
    {
     void foo(A);
    };
    

    Noch zu ergänzen sind Include-Guards, die ich mir hier mal spare. Hackers Tipp diese wegzulassen ist eine ganz schlechte Idee.



  • SeppJ schrieb:

    Hackers Tipp diese wegzulassen ist eine ganz schlechte Idee.

    Hacker, der diese Idee nicht gab (bist du doof im Kopp? Wo denn das?), ist verwirrt, weil er eigentlich nur des TEs Frage bezüglich den Inkludierungen beantworten wollte.


  • Mod

    Hacker schrieb:

    SeppJ schrieb:

    Hackers Tipp diese wegzulassen ist eine ganz schlechte Idee.

    Hacker, der diese Idee nicht gab (bist du doof im Kopp? Wo denn das?), ist verwirrt, weil er eigentlich nur des TEs Frage bezüglich den Inkludierungen beantworten wollte.

    Wenn du auf "wieso geht das nicht?" mit "weil du IG hast!" antwortest, dann ist das zwar technisch richtig, aber die Implikation ist ziemlich eindeutig, die IG wegzumachen.



  • SeppJ schrieb:

    Hacker schrieb:

    SeppJ schrieb:

    Hackers Tipp diese wegzulassen ist eine ganz schlechte Idee.

    Hacker, der diese Idee nicht gab (bist du doof im Kopp? Wo denn das?), ist verwirrt, weil er eigentlich nur des TEs Frage bezüglich den Inkludierungen beantworten wollte.

    Wenn du auf "wieso geht das nicht?" mit "weil du IG hast!" antwortest, dann ist das zwar technisch richtig, aber die Implikation ist ziemlich eindeutig, die IG wegzumachen.

    Gut, wenn das solche Gedanken impliziert, dann werde ich künftig erklären, dass das gegenseitige inkludieren aus gutem Grund nicht geht und man solche Probleme durch Vorwärtsdeklarationen von Klassen und Funktionen löst.


  • Mod

    Hacker schrieb:

    Gut, wenn das solche Gedanken impliziert, dann werde ich künftig erklären, dass das gegenseitige inkludieren aus gutem Grund nicht geht und man solche Probleme durch Vorwärtsdeklarationen von Klassen und Funktionen löst.

    👍 Richtig so. Eine technisch korrekte, aber nutzlose Antwort ist etwas, was man bei dummen Fragen gibt. Ansonsten versuch das eigentliche Problem hinter der Frage zu beantworten. Sonst endest du wie Pi. Ich war auch mal so drauf, bevor mich volkard umgelenkt hat.



  • SeppJ schrieb:

    Sonst endest du wie Pi.

    you made my day 😃 👍



  • hehe. alles nur wegen MIR! 😃


Anmelden zum Antworten