Hva er en HPP-fil?
“.hpp”-filformatet brukes ofte for overskriftsfiler i programmeringsspråket C++. Header-filer inneholder vanligvis deklarasjoner og definisjoner av funksjoner, klasser, variabler og konstanter som brukes av andre kildekodefiler i C++-prosjektet.
Hensikten med å bruke overskriftsfiler er å gi en måte å dele felles kode på tvers av flere kildekodefiler uten å duplisere selve koden. Når C++-kildefilen trenger å få tilgang til erklæringer eller definisjoner fra overskriftsfilen, inkluderer den overskriftsfilen ved å bruke preprosessordirektivet #include
.
Filtypen “.hpp” brukes ofte for å indikere at en fil er en C++-header-fil. Det er ikke et krav å bruke denne spesifikke utvidelsen for header-filer, og du kan også komme over header-filer med “.h” eller andre utvidelser. Valget av utvidelse er i stor grad et spørsmål om konvensjon og personlig preferanse.
Når en C++-kildefil inkluderer overskriftsfil ved bruk av ‘#include’, kombinerer kompilatoren effektivt innholdet i overskriftsfilen med kildefilen før den kompileres som en enhet. Dette lar kildefilen få tilgang til erklæringer og definisjoner i overskriftsfilen, og gir nødvendig informasjon for kompilatoren for å utføre typekontroll og kodegenerering.
Hva inneholder HPP-filen?
Her er noe vanlig innhold du kan finne i “.hpp”-filen:
- Funksjonserklæringer: Header-filer inkluderer ofte funksjonserklæringer uten deres faktiske implementeringer. Disse erklæringene gir informasjon om funksjonens navn, returtype og parametere, slik at andre kildekodefiler kan bruke funksjonen uten å måtte vite implementeringsdetaljer.
- Klasseerklæringer: Overskriftsfiler kan inneholde klasseerklæringer, inkludert klassenavn, medlemsvariabler, medlemsfunksjoner og tilgangspesifikasjoner. Ved å inkludere klasseerklæring i overskriftsfilen, kan andre kildekodefiler lage objekter av den klassen og få tilgang til medlemmene.
- Konstante deklarasjoner: Header-filer kan definere konstanter, for eksempel globale variabler eller enum-verdier som er ment å deles på tvers av flere kildekodefiler. Disse konstantene kan nås ved å inkludere overskriftsfil i andre kildefiler, slik at de kan bruke de definerte konstantene.
- Typedefinisjoner: Overskriftsfiler kan inneholde typedefinisjoner som bruker “typedef” nøkkelord eller typealiaser som bruker “using” nøkkelord. Disse definisjonene skaper nye navn for eksisterende typer, noe som gjør koden mer lesbar og vedlikeholdbar.
- Inline funksjonsdefinisjoner: I noen tilfeller kan overskriftsfiler inneholde innebygde funksjonsdefinisjoner. Innebygde funksjoner er små funksjoner som utvides på anropsstedet i stedet for å bli kalt som en separat funksjon. Ved å inkludere innebygd funksjonsdefinisjon i overskriftsfilen kan kompilatoren erstatte funksjonskall med funksjonstekst direkte, noe som potensielt kan forbedre ytelsen.
HPP-fileksempel
#ifndef PERSON_HPP
#define PERSON_HPP
#include <string>
class Person {
private:
std::string name;
int age;
public:
Person();
Person(const std::string& name, int age);
void setName(const std::string& newName);
void setAge(int newAge);
std::string getName() const;
int getAge() const;
void printInfo() const;
};
#endif
Hva er formatet til HPP-filen?
HPP er en ren tekstfil, men følger de generelle reglene og syntaksen til programmeringsspråket C++. Her er en oversikt over det generelle formatet og strukturen til “.hpp”-filen:
- Overskriftsbeskyttelse: Vanligvis begynner en “.hpp”-fil med overskriftsbeskyttelse for å forhindre flere inkluderinger av samme fil. Dette oppnås ved å bruke forprosessordirektiver som
#ifndef
,#define
og#endif
. Overskriftsvakten sikrer at innholdet i filen bare inkluderes én gang under kompileringsprosessen. - Inkluder utsagn: Etter overskriftsbeskyttelse kan du inkludere andre nødvendige overskriftsfiler ved å bruke “#include”-direktivet. Disse kan inkludere standard bibliotekhoder eller andre tilpassede overskrifter som kreves av koden din.
- Deklarasjoner og definisjoner: Det primære innholdet i “.hpp”-filen er erklæringene og, i noen tilfeller, definisjoner av klasser, funksjoner, konstanter, typealiaser og andre elementer. Du kan for eksempel deklarere klasser ved å bruke “class” nøkkelord, funksjoner ved å bruke deres returtype, navn og parameterliste, og konstanter ved å bruke “const” nøkkelord etterfulgt av deres type og navn.
- Inline funksjonsdefinisjoner: I visse tilfeller kan du inkludere innebygde funksjonsdefinisjoner direkte i “.hpp”-filen. Innebygde funksjoner er vanligvis definert i klassekroppen, noe som betyr at funksjonsdefinisjonen er inkludert ved siden av erklæringen. Dette kan gjøres ved å sette prefiks for funksjonsdefinisjon med “inline” nøkkelord.
- Navneområdeerklæringer: Hvis du bruker navnerom i koden din, kan du deklarere dem i “.hpp”-filen. Dette gjøres ved å bruke nøkkelordet
namespace
etterfulgt av navneromsnavn og omslutter den relevante koden i navneromsblokken.
Referanser
See Also
- INO-fil - Arduino Sketch - Hva er en .ino-fil og hvordan åpner jeg den?
- SMC-fil - Super Nintendo Game ROM - Hva er en .smc-fil og hvordan åpner jeg den?
- ENC-fil - kodet fil - Hva er en .enc-fil og hvordan åpner jeg den?
- ESX-fil - Xactimate Insurance Claims Estimate - Hva er en .esx-fil og hvordan åpner jeg den?
- NDS-fil - Nintendo DS Game ROM - Hva er en .nds-fil og hvordan åpner jeg den?