const-variabler og -parametre
Beskyt data mod ændringer
const-variabler og -parametre er en gratis C++ Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i C++ Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C++ Academy-kurset indeholder 4 lektioner i alt.
Erklæring af const-variabler
En const-variabel kan ikke ændres efter initialisering. Compileren håndhæver dette og fanger utilsigtede skrivninger.
#include <iostream>
int main() {
const int maxUsers = 100;
// maxUsers = 200; // ERROR
std::cout << maxUsers << "\n";
}const-funktionsparametre
Hvis en værdiparameter markeres med const, forhindres funktionskroppen i at ændre sin lokale kopi — en hjælp til dokumentation og sikkerhed.
#include <iostream>
int doubled(const int n) {
// n = 0; // ERROR
return n * 2;
}
int main() { std::cout << doubled(21) << "\n"; }const-referenceparametre
Passage med const& undgår kopiering af store objekter og lover samtidig ikke at ændre dem — den almindelige måde at videregive strenge og containere på.
#include <iostream>
#include <string>
void printLen(const std::string& s) { // no copy, no change
std::cout << s.size() << "\n";
}
int main() { printLen("hello"); }Pointer til const
const T* betyder, at du ikke kan ændre den værdi, der peges på, gennem denne pointer, selv om selve pointeren kan pege et andet sted.
#include <iostream>
int main() {
int a = 1, b = 2;
const int* p = &a;
// *p = 5; // ERROR: value is const
p = &b; // OK: pointer can move
std::cout << *p << "\n";
}const-pointer
T* const er en konstant pointer: du kan ikke få den til at pege et andet sted, men du må gerne ændre den værdi, den peger på.
#include <iostream>
int main() {
int a = 1;
int* const p = &a;
*p = 9; // OK: value changeable
// p = nullptr; // ERROR: pointer is const
std::cout << *p << "\n";
}Læs deklarationer fra højre mod venstre
Læs const-deklarationer fra højre mod venstre: const int* const er en "const-pointer til const int" — hverken værdien eller pointeren kan ændres.
Hvorfor const-korrekthed
Brug af const alle de steder, hvor det er relevant, dokumenterer hensigten, forhindrer fejl og giver compileren mulighed for at optimere. Denne disciplin kaldes const-korrekthed.
const gør kald med const mulige
En funktion, der tager const&, kan modtage både const- og ikke-const-argumenter samt midlertidige værdier. En ikke-const-reference kan ikke bindes til en midlertidig værdi.
const-lokale variabler gør det lettere at gennemskue koden
Når du erklærer lokale variabler som const, hvis de ikke skal ændres, bliver koden lettere at læse, og utilsigtet tildeling forhindres.
#include <iostream>
int main() {
const double rate = 0.2;
const double total = 100 * (1 + rate);
std::cout << total << "\n";
}const på øverste niveau for værdier
For værdiparametre påvirker const på øverste niveau ikke kaldet — det begrænser kun funktionskroppen og udelades ofte i deklarationer.
Tilføj const tidligt
Det er langt lettere at skrive const-korrekt fra starten end at tilpasse eksisterende kode senere. Gør det til en vane som udgangspunkt at bruge const på parametre, referencer og lokale variabler.
Hurtig kontrol
Test din forståelse af const.
Opsummering
Du har lært at bruge const på variabler, parametre, referencer og pointere samt forskellen mellem pointer til const og const-pointer. const-korrekthed dokumenterer hensigten, forhindrer fejl og gør binding til midlertidige værdier og optimering mulig.
Lær C++ med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 51
- Lektioner
- 203
Ofte stillede spørgsmål
Er lektionen “const-variabler og -parametre” gratis?
Ja — alle 3 lektioner i læringssporet C++ Academy, inklusive “const-variabler og -parametre”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. C++ Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “const-variabler og -parametre”?
Beskyt data mod ændringer Du øver dig i C++ Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C++ Academy?
Der kræves ingen tidligere erfaring. C++ Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “const-variabler og -parametre”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C++ Academy-lektion?
Ja. Alle C++ Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- const-variabler og -parametre
- const-medlemsfunktioner
- constexpr og kompileringstid
- consteval og constinit