Gå til innhold

Vanlige begreper

Enten du er ny til programmering eller bare til C++, vil du møte mange ukjente ord. Denne siden gir en kort, enkel definisjon av dem som brukes i denne boka, med en peker til der hvert enkelt forklares i sin helhet. Den er alfabetisk — bruk søkefeltet øverst for å hoppe rett til et begrep.

Begrep Betydning
abstrakt klasse En klasse med minst én ren virtuell funksjon (= 0); den kan ikke opprettes direkte, bare arves fra. Se Polymorfisme.
argument En verdi du sender til en funksjon når du kaller den. Inni funksjonen kommer den fram som en parameter. Se Funksjoner.
assertion (assert) En sjekk av en betingelse som alltid må være sann; hvis den er usann, avbryter programmet. Et verktøy for å fange feil, fjernet i release-bygg. Se Feilhåndtering.
tilordning Å erstatte en variabels nåværende verdi med en ny, f.eks. x = 5. Se Operatorer og uttrykk.
auto Et nøkkelord som lar kompilatoren utlede typen til en variabel fra initialiseringen (auto x = 5; gjør x til en int). Typen er fortsatt fast og sjekkes ved kompilering. Se Variabler og grunntyper.
grunntilfelle Tilfellet i en rekursiv funksjon som kan besvares direkte, uten å rekursere — det er det som stopper rekursjonen. Se Rekursjon.
blokk En gruppe setninger pakket inn i krøllparenteser { }. En blokk definerer et virkeområde. Se Grunnstruktur.
breakpoint En markør som pauser et kjørende program i debuggeren så du kan inspisere det. Se Bruke en debugger.
innebygd type En type språket tilbyr direkte: int, double, bool, char. Se Variabler og grunntyper.
capture [ ]-delen av en lambda som lister hvilke omkringliggende variabler den kan bruke, ved verdi eller ved referanse. Se Lambda-uttrykk.
cast En eksplisitt typekonvertering, f.eks. static_cast<int>(x). Se Operatorer og uttrykk.
klasse En brukerdefinert type som bunter sammen data med operasjonene som virker på dem. Se Klasser.
kohesjon Hvor sterkt delene av én kodebit hører sammen — hvor fokusert den er på én oppgave. Høy kohesjon (ett klart ansvar) er målet. Se Separasjon av ansvar.
kompileringstid / kjøretid Kompileringstid er mens kompilatoren bygger programmet ditt; kjøretid er mens det ferdige programmet kjører. C++ fanger mange feil ved kompileringstid, før programmet i det hele tatt kjører. Se Introduksjon.
kompilator / kompilere Verktøyet som oversetter kildekoden din til et kjørbart program, før det kjører. Se Introduksjon.
komposisjon Å bygge en klasse ved å holde en annen som et medlem (en "has-a") i stedet for å arve fra den. Foretrekk det fremfor arv med mindre forholdet er en ekte "is-a". Se Polymorfisme.
const Et løfte til kompilatoren om at en verdi ikke vil endre seg; kompilatoren håndhever det. Se Variabler og grunntyper.
const-korrekthet Vanen med å merke alt som ikke endrer seg som const — medlemsfunksjoner som bare observerer, referanseparametere du bare leser, lokale variabler du aldri tilordner på nytt — så kompilatoren håndhever hva som kan endres. Et const-objekt kan kalle bare const-medlemsfunksjoner. Se Klasser og Verdier, referanser og pekere.
konstruktør En spesiell medlemsfunksjon som kjører når et objekt opprettes, for å sette opp dets opprinnelige tilstand. Se Klasser.
beholder En type fra standardbiblioteket som holder en samling verdier, som std::vector, std::map eller std::set. Se Datastrukturer.
kobling Hvor mye én kodebit avhenger av detaljene i en annen. Løs (lav) kobling — biter koblet sammen bare gjennom smale grensesnitt — er målet. Se Separasjon av ansvar.
dinglende referanse / peker En referanse eller peker til noe som allerede er ødelagt; å bruke den er udefinert oppførsel og en vanlig årsak til krasj. Se Verdier, referanser og pekere.
innkapsling Å skjule en types indre virkemåte bak et rent grensesnitt ved å gjøre dataene dens private. Se Klasser.
enum class En type med et fast sett navngitte verdier (en scoped enumerasjon); den moderne, typesikre varianten av enum. Se Enumerasjoner.
unntak En måte å signalisere og håndtere feil på, ved hjelp av throw, try og catch. Se Feilhåndtering.
uttrykk Alt som evalueres til en verdi — en literal, en variabel, et funksjonskall, eller disse satt sammen med operatorer (i + j). Se Operatorer og uttrykk.
funksjon En navngitt, gjenbrukbar kodebit som utfører én oppgave. Se Funksjoner.
global variabel En variabel deklarert utenfor alle funksjoner, synlig overalt. Delte, muterbare globale variabler gjør koden vanskelig å følge og teste; foretrekk lokale variabler, parametere og returverdier, og hold varig tilstand inne i et objekt. Globale konstanter er greit. Se Funksjoner.
header En fil (vanligvis .hpp) hvis deklarasjoner deles på tvers av kildefiler via #include. Se Klasser.
heap Minneregionen for verdier hvis størrelse eller levetid bestemmes mens programmet kjører; beholdere og smartpekere håndterer den for deg (unngå rå new/delete). Kontrast stacken. Se Minnehåndtering.
IDE Integrert utviklingsmiljø (Integrated Development Environment) — applikasjonen du skriver, bygger, kjører og debugger kode i. Dette emnet bruker CLion. Se Kom i gang.
arv Å bygge en ny klasse oppå en eksisterende (class Dog : public Animal). Se Polymorfisme.
initialisere Gi en variabel en verdi i det øyeblikket den opprettes. Gjør alltid dette. Se Variabler og grunntyper.
iterator Et objekt som brukes til å gå gjennom elementene i en beholder. Se C++ standardbibliotek.
lambda En liten, navnløs funksjon skrevet rett i koden, ofte gitt til en algoritme. Se Lambda-uttrykk.
linker / linking Byggetrinnet som kombinerer de kompilerte delene og bibliotekene til det ferdige programmet. "Undefined reference" er en linkerfeil. Se Lese kompilatorfeil.
Liskovs substitusjonsprinsipp Designregelen om at en avledet klasse må kunne brukes overalt hvor grunntypen brukes, uten å overraske kode som stoler på grunntypen — en ærlig is-a. Se Polymorfisme.
LLM / KI-assistent En stor språkmodell (ChatGPT, Claude, …) som kan generere kode — nyttig, men selvsikkert feil ofte nok til at du må sjekke den. Se Bruke KI til koding.
main Funksjonen operativsystemet kaller for å starte programmet ditt. Hvert program har nøyaktig én. Se Grunnstruktur.
medlemsfunksjon (metode) En operasjon definert inni en klasse og kalt på et objekt. "Metode" er et synonym. Se Klasser.
medlemsinitialiseringsliste : a(x), b(y)-delen av en konstruktør som gir datamedlemmene sine verdier før kroppen kjører. Se Klasser.
move Å overføre en ressurs fra ett objekt til et annet i stedet for å kopiere den. Se Flyttesemantikk.
namespace En navngitt region som grupperer navn for å unngå kollisjoner. Standardbiblioteket bor i navnerommet std. Se C++ standardbibliotek.
NaN "Not a Number" — et flyttallsresultat av ugyldig matematikk (f.eks. 0.0 / 0.0). Det sammenlignes som usant mot alt, til og med seg selv. Se Flyttall-fallgruver.
nullptr Literalen for en peker som peker på ingenting. Sjekk at en peker ikke er nullptr før du bruker den. Se Verdier, referanser og pekere.
objekt / instans En konkret verdi av en klassetype, laget fra tegningen dens — "instans" er et synonym. En bestemt Motor i minnet er et objekt av klassen Motor. Se Klasser.
operator Et symbol som +, == eller && som utfører en handling inni et uttrykk. Se Operatorer og uttrykk.
overlasting Å definere flere funksjoner med samme navn, men forskjellige parametertyper; kompilatoren velger den riktige. Se Funksjoner.
override Et nøkkelord som markerer en medlemsfunksjon som erstatter en virtuell funksjon i en baseklasse; kompilatoren sjekker at det faktisk finnes en å overstyre. Se Polymorfisme.
parameter En navngitt inndata i en funksjons definisjon. Verdien som oppgis på kallstedet, er argumentet. Se Funksjoner.
PATH Listen over mapper skallet leter gjennom for å finne et program du kjører ved navn. En "command not found" er ofte et PATH-problem. Se Datamaskingrunnlag.
peker En variabel som holder en minneadresse. Den kan være nullptr (peker på ingenting) og må sjekkes før bruk. Se Verdier, referanser og pekere.
polymorfisme Å behandle forskjellige avledede typer gjennom et felles basegrensesnitt, så det samme kallet kjører koden til den riktige typen. Se Polymorfisme.
predikat En funksjon (ofte en lambda) som returnerer true eller false, brukt av algoritmer som find_if. Se Lambda-uttrykk.
RAII "Resource Acquisition Is Initialisation" — knytt en ressurs til et objekt så den frigjøres automatisk når objektet går ut av virkeområdet. Se RAII.
rekursjon En funksjon som kaller seg selv for å løse en mindre versjon av det samme problemet, og stopper ved et grunntilfelle. Se Rekursjon.
referanse Et alias for en eksisterende variabel; den kan aldri være null og refererer aldri til noe annet når den først er satt. Se Verdier, referanser og pekere.
Regelen om null (Rule of Zero) Utform klasser hvis medlemmer styrer seg selv (beholdere, smartpekere) så du ikke trenger å skrive noen spesielle medlemsfunksjoner. Se Klasser.
virkeområde Regionen av kode der et navn er gyldig. En variabel deklarert i en blokk forsvinner når blokken slutter. Se Grunnstruktur.
skall Programmet (PowerShell, bash, zsh, cmd) som tolker kommandoene du skriver i en terminal. Se Datamaskingrunnlag.
signatur En funksjons navn sammen med antallet og typene til parameterne dens — det som skiller én overlasting fra en annen. Se Funksjoner.
smartpeker En RAII-innpakning som eier heap-minne og frigjør det automatisk — std::unique_ptr, std::shared_ptr. Se Minnehåndtering.
stack Minneregionen der lokale variabler og funksjonskall lever; oppføringer frigjøres automatisk når de går ut av virkeområdet. Kontrast heapen. Se Minnehåndtering.
stack overflow Et krasj forårsaket av å bruke opp kallstacken, for eksempel en rekursjon uten et nåbart grunntilfelle. Se Rekursjon.
standardbibliotek Det store settet av typer og funksjoner som følger med C++, alle i navnerommet std. (Beholder- og algoritmedelen kalles uformelt STL.) Se C++ standardbibliotek.
setning Én instruksjon; i C++ avsluttes den med semikolon. Se Grunnstruktur.
std Navnerommet til standardbiblioteket. std::cout betyr "cout, fra std". Se C++ standardbibliotek.
struct Det samme som en class bortsett fra at medlemmene som standard er public. Brukes etter konvensjon for enkle databunter. Se Klasser.
template En mal som genererer funksjoner eller klasser for hvilken type du enn bruker, som std::vector<T>. Se Maler.
terminal Et tekstvindu der du styrer datamaskinen ved å skrive kommandoer i stedet for å klikke. Se Datamaskingrunnlag.
udefinert oppførsel Kode språket ikke gir noen løfter om: den kan krasje, skrive ut søppel, eller virke og bryte sammen senere. Unngå den. Se Variabler og grunntyper.
uinitialisert variabel En variabel opprettet uten en verdi. Å lese en er udefinert oppførsel og en rik kilde til feil — initialiser alltid. Se Variabler og grunntyper.
variabel En navngitt minnebit som holder en verdi av en fast type. Se Variabler og grunntyper.
vector Standardbibliotekets størrelsesjusterbare array, std::vector. Listetypen du griper til som standard. Se C++ standardbibliotek.
virtuell funksjon En medlemsfunksjon en avledet klasse kan overstyre; et kall gjennom en basereferanse eller -peker kjører versjonen til det faktiske objektet. Se Polymorfisme.