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.
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
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.
Synes godt om
Ny brugerNybegynder
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.