08. december 2003 - 22:49
Der er
23 kommentarer og 1 løsning
Opbygning af .h fil
Hej Jeg er i gang med et tekstbasseret rollespil og vil gerne dele klasserne lidt ud i .h eller .cpp filer (er lidt i tvivl om hvad jeg skal bruge) Hvis nu jeg vil have en .h eller .cpp fil med funktionen hej void hej(void) { cout<<"hej"<<endl; } Hvordan skal indholdet af filen så se ud for at det virker og den kan inkluderes og funktionen kan kaldes. Og hvilke filer skal bruges til hvad?
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
08. december 2003 - 22:53
#1
Typisk vil du lave: minefunk.h ---------- #ifndef MINEFUNK_H #define MINEFUNK_H void hej(void); #endif minefunk.cpp ------------ #include <iostream> using namespace std; #include "minefunk.h" void hej(void) { cout<<"hej"<<endl; }
08. december 2003 - 22:56
#2
Og hvis jeg nu skal bruge hej i hilsen.cpp så skal jeg include minefunk.cpp i den
08. december 2003 - 22:58
#3
Nej - så skal du kun include minefunk.h ! Men huske at linke med minefunk.obj !!
08. december 2003 - 23:00
#4
det fik du smidt mig af. linke til minefunk.obj?? Prøvede lige denneher med dine filer og den virker da fint: #include <windows.h> #include <cstdlib> #include <string> #include <ctime> #include <iostream> #include "minefunk.cpp" using namespace std; int main() { hej(); cout<<"h"<<endl; system("pause"); return 0; }
08. december 2003 - 23:02
#5
Noget andet der er almindeligt er at have funktionsprototyperne i minefunk.h, mens selv implementeringerne af funktionerne ligger i minefunk.cpp. For at bruge funktionerne inkluderer du bare minefunk.h og compiler sammen med både minefunk.h og minefunk.cpp
08. december 2003 - 23:02
#6
hvis #include "minefunk.cpp" byttes ud med #include "minefunk.h" får jeg en link error så det har jo nok noget at gøre med at linke til minefunk.obj
08. december 2003 - 23:03
#7
Hmm det var jo også det arne skrev - undskyld, jeg er træt ;-)
08. december 2003 - 23:03
#8
Er det rigtigt arne?
08. december 2003 - 23:03
#9
Hvilken IDE og hvilken compiler ?
08. december 2003 - 23:04
#10
Ja.
08. december 2003 - 23:04
#11
dev-vpp
08. december 2003 - 23:04
#12
dev-cpp sorry er også lidt træt
08. december 2003 - 23:05
#13
Hm. Jeg ville faktisk hav etroet at den selv linkede alt i projektet sammen. Jeg tester lige.
08. december 2003 - 23:09
#14
Det gør den hos mig ! Opretter du de nye filer rigtigt med: file new source file ?
08. december 2003 - 23:13
#15
Ikke helt. Laver .h og .cpp i notepad og inkluderer dem i mit projekt
08. december 2003 - 23:14
#16
Hvordan gør du? vil da hellere sidde og gøre det hele i ide'et i stedet for at bruge notepad til noget af det
08. december 2003 - 23:17
#17
Hm - det virker også hos mig.
08. december 2003 - 23:18
#18
Jeg bruger så godt som aldrig dev-cpp, jeg skriver filerne i notepad eller JEdit og compiler så i et DOS vindue.
08. december 2003 - 23:18
#19
Hvad gør du helt præcis? Jeg har et projekt try liggende i en mappe og i samme mappe lægger jeg minefunk.h og .cpp hvorefter jeg i koden skriver #include "minefunk.h"
08. december 2003 - 23:19
#20
I dit tilfælde ville du kunne builde med: gcc hilsen.cpp minefunk.cpp -o hilsen.exe eller: gcc -c hilsen.cpp -o hilsen.obj gcc -c minefunk.cpp -o minefunk.obj gcc hilsen.obj minefunk.obj -o hilsen.exe
08. december 2003 - 23:20
#21
Jeg bruger: Project Add to project med dev-cpp
08. december 2003 - 23:25
#22
Helt fra bunde. Jeg har et projekt liggende i en .dev fil der hedder projekt1.dev i den ligger så main.cpp som jeg spå bruger som skeletet eller hvad man nu skal kalde det. Så har jeg funktionen hej i minefunk filerne (ligger i samme mappe som .dev'en og main.cpp) som jeg gerne vil have inkluderet i projektet. I main skriver jeg #include "minefunk.h" og får en linker fejl
08. december 2003 - 23:27
#23
Inden du builder klikker du på Project menuen, vælger ADd to project og vælger minefunk.h og minefunk.cpp og tilføjer dem til projektet. Og så builder du.
08. december 2003 - 23:29
#24
Ligemeget det virker nu. Mange tak for hjælpen :D
Kurser inden for grundlæggende programmering