#include

Tags:    c++

jeg her skrevet følgene program:
Fold kodeboks ind/udKode 

Fold kodeboks ind/udKode 

Fold kodeboks ind/udKode 


Det virker, men jeg forstår ikke hvordan include'sne virker. Min opfattelse er, at når præ-processeren køre bliver linjen med include skiftet ud med det document include'en henviser til.

Så er det bare at jeg ikke forstår hvordan min robo klasse virker. I main er robo.h includeret, men hverken robo.h, main.cpp eller nogle andre ting der er includeret i main henviser til robo.cpp. Hvordan kommer robo.cpp ind i billedet.?

Og desuden, hvad er forskellen på #include <> og #include ""?






Indlæg senest redigeret d. 13.11.2008 21:24 af Bruger #13669
6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Din IDE sørger for at stykke filerne sammen.



Det er rigtigt at når man bruger #include kommer det til at se ud som om koden fra filen der inkluderes kommer til at stå i dokumentet hvor fra der inkluderes.

I dit tilfælde betyder det at du kan bruge class'en robo fra din main.cpp, for robo er erklæret i robo.h, der inkluderes i main.cpp

Selve funktionerne, body, er erklæret i robo.cpp, main.cpp behøver ikke vide hvordan selv funktionerne ser ud, den behøver kun at kende class'en.

Når man oversætter et .cpp program sker det groft sagt i to trin:
1: Alle .cpp filerne compileres til objekt filer
2: Objekt filerne "linkes", dvs. kædes, sammen til et program. Her linkes der normalt også med forskellige biblioteker, f.eks. standard bibliotekerne.

I dit tilfælde linkes koden fra main.cpp og koden fra robo.cpp sammen til et program. På dette tidspunkt skal oversætteren kende både main og robo.

Ofte arbejder man i et miljø/IDE, hvor man har et projekt. Projektet består af et antal .cpp og .h filer. IDE'en sørger så for at linke det hele sammen. Hvilken compiler/IDE bruger du?

Forskellen på include med <> og "" er hvor compileren leder efter header-filerne. Oftest bruger man <> til standard header-filer og "" til ens egne header-filer.



Forskellen på #include "" og #include <> er at med "" bliver der først søgt i den nuværende mappe, og derefter i system mapperne, hvor imod <> kun søger i system mapperne.
Angiver du din robo.cpp når du kompiler din kode?



Som bertel siger så bliver din main.cpp og din robo.cpp kædet sammen under compiling til et program (groft sagt). I din robo.h findes dine deklerationer. Disse deklerationer er bliver inkluderet i main.cpp for at sikre at funktion parametre og return values matcher dit funktionskald.




Ofte arbejder man i et miljø/IDE, hvor man har et projekt. Projektet består af et antal .cpp og .h filer. IDE'en sørger så for at linke det hele sammen. Hvilken compiler/IDE bruger du?


Dev-c++ compileren er mingw. Jeg angiver ikke selv nogle filer. Jeg strykker bare compile and run.



Din IDE sørger for at stykke filerne sammen.

ok, kiggede også i compile log(tror jeg nok det hed)

Der kunne man også se, at der var noget med nogle .cpp filer der blev til .o filer.

Tak for svarene.



t