funktionen definieren und deklarieren
-
Hallo Leute,
ich kann doch eine Funktion z.B. in Funcs.h definieren und in funcs.cpp deklarieren oder? Oder heißt das anderes rum?
Naja aber eigentlich sollte ich ja in funcs.hvoid hW(void);
schreiben können und dann in funcs.cpp
void hW(void){ std::cout<<"Hello World!\n"; }
das schreiben..
und dann in meiner main z.B. main.cpp die Funktion benutzen...Also in funcs.cpp funcs.h includieren und in main funcs.cpp includieren dann sollte das ja eigentlich gehen oder?
Nun erzählt der Compiler mir allerdings das die Funktion doppelt definiert ist wie kann das?
Wenn ihr wollt kann ich die codes auch nochmal komplett posten.
Danke schonmal
-
Heißt genau andersrum, aber in der main.cpp muss die funcs.hpp inkludiert werden Mäuschen.
-
Das rall ich nicht
Also in der funcs.h deklarier ich die Funktionen?
Dann in der funcs.cpp definieren.. Hier ist auch die funcs.h includiert?!
Und dann in der main.cpp die funcs.h oder *.cpp includieren?
-
Ja
Ja
die funcs.hppmein kleines Mäusezähnchen
-
h ist doch das gleiche wie hpp?
-
hpp = Headerdateien die vom Präprozessor vorkompiliert werden
h = Headerdateien die ganz normal kompiliert werden
-
ja und was soll in der hpp stehen?
-
Alter mongo jungäää
guckstu gugel
-
KoyaKarpfen (gesperrt) schrieb:
hpp = Headerdateien die vom Präprozessor vorkompiliert werden
h = Headerdateien die ganz normal kompiliert werden
Woher hast du denn den Mist?@WildChild
In den Header (.h) kommen Deklarationen und in die Source (.cpp) die Definitionen.Also:
//functions.h void foo(); void bar();
//functions.cpp #include "functions.h" void foo() { } void bar() { }
//main.cpp #includ "functions.h" int main() { foo(); bar(); }
-
Theoretisch müsstest du functions.h gar nicht in functions.cpp includen, sofern du nicht bar() in foo() aufrufst, aber wenn du es includest, meldet dir der Compiler bei manchen Leichtsinnsfehlern bei der Deklaration einen Fehler.