Avatar billede gumbert Nybegynder
30. juni 2003 - 23:42 Der er 2 kommentarer og
1 løsning

Lave min egen .h fil

Hey

  Er der nogen der har et link til en tut der viser lidt om hvordan man laver sin egen header-fil. (til c++)

  Det jeg gerne vil have noget om er selve fremstillingen (er det bare at gemme en fil .h) og så hvordan man smartest bygger den op....
Avatar billede bertelbrander Novice
01. juli 2003 - 00:46 #1
En h-fil er blot en text fil ligesom en C/C++ fil.
Normalt putter man prototyper, #define's, typedefinitioner og extern variable i en header-fil.
Der er ikke noget mystisk ved h-filer; under kompileringen ser kompileren det der står i h-filen somom det stod i cpp-filen.
Det der puttes i header-filer er generelt det der skal deles mellem 2 eller flere cpp-filer.
Avatar billede arne_v Ekspert
01. juli 2003 - 07:41 #2
SOm Bertel siger er det bare en almindelig tekst-fil.

Det er en en god ide at checke for multiple inkluderinger.

Foorbar.h:

#ifndef FOOBAR_H
#define FOOBAR_H

// diverse type definitioner

#endif

Det er også en god ide at have en fornuftig navngivnings-praksis
for .H og .CPP filer. Der er mange måder at gøre det på. Personligt
foretrækker jeg:
  - en .H fil per klasse hiraki (d.v.s. en klasse og alle afledte
    klasser i en enkelt .H)
  - alle implementationerne som hører til en .H i en eneklet .CPP
Avatar billede segmose Nybegynder
01. juli 2003 - 08:49 #3
Hver eneste .cpp fil oversættes for sig og ved intet om de øvrige .cpp filer, derfor skal du fortælle hver .cpp hvad den kan bruge fra de andre .cpp filer dette gøres gennem .h filer, så hvis du har en funktion i a.cpp der skal bruges i b.cpp skal du tilføje funktions deklaration til a.h og include're den i b.cpp, dvs.

type navn(argumenter);

fx.
int mit(float bloat);

dvs. du tilføjer ikke hele funktionen til .h filen da den så ville findes i samtlige object filer og dermed give compiler fejl.


samme med variable, de erklæres i .h filen med extern foran og uden initialiserings værdier, fx.

extern int noget;

hvor der så én .cpp fil fx. står

int noget = 2;

det samme med class'er og templates hvor erklæringen er det meste af funktionaliteten, nogle funktioner i en class vil typisk være større og bo i en .cpp fil, korte funktioner (inline) vil kun bo i .h som en del af class'en imodsætning til almindelige funktioner.
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