Avatar billede thomas_nj Nybegynder
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?
Avatar billede arne_v Ekspert
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;
}
Avatar billede thomas_nj Nybegynder
08. december 2003 - 22:56 #2
Og hvis jeg nu skal bruge hej i hilsen.cpp så skal jeg include minefunk.cpp i den
Avatar billede arne_v Ekspert
08. december 2003 - 22:58 #3
Nej - så skal du kun include minefunk.h !

Men huske at linke med minefunk.obj !!
Avatar billede thomas_nj Nybegynder
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;
}
Avatar billede tosssen Nybegynder
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
Avatar billede thomas_nj Nybegynder
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
Avatar billede tosssen Nybegynder
08. december 2003 - 23:03 #7
Hmm det var jo også det arne skrev - undskyld, jeg er træt ;-)
Avatar billede thomas_nj Nybegynder
08. december 2003 - 23:03 #8
Er det rigtigt arne?
Avatar billede arne_v Ekspert
08. december 2003 - 23:03 #9
Hvilken IDE og hvilken compiler ?
Avatar billede arne_v Ekspert
08. december 2003 - 23:04 #10
Ja.
Avatar billede thomas_nj Nybegynder
08. december 2003 - 23:04 #11
dev-vpp
Avatar billede thomas_nj Nybegynder
08. december 2003 - 23:04 #12
dev-cpp sorry er også lidt træt
Avatar billede arne_v Ekspert
08. december 2003 - 23:05 #13
Hm.

Jeg ville faktisk hav etroet at den selv linkede alt i projektet sammen.

Jeg tester lige.
Avatar billede arne_v Ekspert
08. december 2003 - 23:09 #14
Det gør den hos mig !

Opretter du de nye filer rigtigt med:
  file
  new
  source file
?
Avatar billede thomas_nj Nybegynder
08. december 2003 - 23:13 #15
Ikke helt. Laver .h og .cpp i notepad og inkluderer dem i mit projekt
Avatar billede thomas_nj Nybegynder
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
Avatar billede arne_v Ekspert
08. december 2003 - 23:17 #17
Hm - det virker også hos mig.
Avatar billede arne_v Ekspert
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.
Avatar billede thomas_nj Nybegynder
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"
Avatar billede arne_v Ekspert
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
Avatar billede arne_v Ekspert
08. december 2003 - 23:20 #21
Jeg bruger:

Project
Add to project

med dev-cpp
Avatar billede thomas_nj Nybegynder
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
Avatar billede arne_v Ekspert
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.
Avatar billede thomas_nj Nybegynder
08. december 2003 - 23:29 #24
Ligemeget det virker nu. Mange tak for hjælpen :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester