Funktion auslagern - Headerdateien



  • Hi!

    Sie liegen im gleichen Ordner wie die main.cpp.
    Also im Hauptverzeichnis des Projekts!

    Gruß,

    Flasher



  • Du musst die Datei change.h auch in change.cpp inkludieren. Hast du das getan?



  • Nein, habe ich nicht!

    Warum muss ich das machen?

    Es funktioniert mittlerweile! Ich habe bei der change.h Datei unter Properties "Link file" und "Compile File" deaktiviert und seitdem funktioniert es!

    Bin aber für weiter Hintergrundinformationen sehr dankbar!



  • Um dem Compiler mitzuteilen wo die korrekte Definition liegt.



  • David_pb schrieb:

    Um dem Compiler mitzuteilen wo die korrekte Definition liegt.

    Wenn ich mich einmischen darf, kann mir jemand mehr dazu sagen? Ich habe auch Schwierigkeiten, das zu verstehen...
    Wenn in der change.cpp bereits Funktionsdefinitionen sind, warum braucht sie dann noch die Deklarationen? :confuzzled:



  • Soweit ich weiss MUSS man die NICHT immer mit inkludieren, sollte es aber meistens. Irgendwann hatte mir das hustbaer glaub ich (sry falls es ein anderer war) mal beantwortet.... und beschaemenderweise merk ich grad, dass ich es vergessen habe.... entschuldige bitte, diesma wirds abgespeichert


  • Mod

    Flasher.d84 schrieb:

    Nein, habe ich nicht!

    Warum muss ich das machen?

    Es funktioniert mittlerweile! Ich habe bei der change.h Datei unter Properties "Link file" und "Compile File" deaktiviert und seitdem funktioniert es!

    Bin aber für weiter Hintergrundinformationen sehr dankbar!

    Im Prinzip musst du nicht, wenn die Definition für sich stehen kann. Allerdings benötigst du häufig auch noch Typdeklarationen und -definitionen (ohne Klassendefinition kannst du auch keinen Memberfunktionen definieren) oder andere Funktionen, die in anderen ÜEs oder erst später im selben File definiert werden. Selbst wenn das nicht der Fall ist, kann das inkludieren nützlich sein, um bestimmten Inkonsistenzen auf die Spur zu kommen.



  • Hi!

    Dieser Thread ist ja schon ziermlich alt, aber ich wollte keinen neuen aufmachen.

    Kann mir jemand erklären wie ich Funktionen in andere Dateien auslaggern kann?!

    Ich mache gerade einen Taschenrechner mit so fast allen Rechenfunktion für Grundrechenarte, Körper- und Flächenberechnung, Prozentrechnung....

    Wie ihr euch vorstellen könnt ist der Quelltext eeeeeeeeewig lang!

    Wie kann ich die einzellenen Funktionen nun in seperate Dateien auslaggern!?



  • Wenn du schon alte Threads rauskramst, dann lies sie dir doch wenigstens durch.

    Du brauchst:

    • einen Header "function.h" mit allen Funktionsprototypen und Hilfsdeklarationen (Include Guards sind hier hilfreich)
    • eine Quelldatei "function.cpp" mit den zugehörigen Funktionsdefinitionen - diese braucht ein #include "function.h" am Anfang
    • eine Quelldatei "main.cpp" mit deinem Hauptprogramm - diese braucht ebenfalls ein #include

    Alle drei Dateien packst du in ein Projekt und compilierst/linkst sie dann gemeinsam (wie genau du das machst, hängt von deinem Compiler ab).



  • 😞 😞 😞

    Hab die ganze Zeit versucht das mit den auslagern Hinzubekommen!
    Nur irgendwie bekomme ich das nicht hin!
    Auch die vorhergehenden Beiträge lassen mich nicht weiter kommen!

    Kann mir das mal jemand mit richtigen Quelltext zeigen!? 😕
    ___________________________________________________________________________________

    Ich benutz den DevC++ Kompilier 🙄


Anmelden zum Antworten