Ugrás a tartalomhoz

const

A Wikiszótárból, a nyitott szótárból


Főnév

const (tsz. consts)

  1. (informatika) A const kulcsszó a C++ programozási nyelvben az állandó értékek deklarálására szolgál. Ezt a kulcsszót változók, mutatók, függvények és egyéb típusok előtt is használhatjuk, hogy jelezzük: az adott érték a program futása során nem változhat meg. A const szó a “constant” (állandó) rövidítése, és a C++ egyik alapvető eszköze a biztonságosabb, könnyebben karbantartható és hibamentes kód írásához.

1. A const használata változók esetén

Amikor egy változót const-nak jelölünk, akkor az a változó értéke az inicializálás után nem módosítható. Ez segít elkerülni a véletlen adatmanipulációt, amely hibákhoz vezethet.

Példa:

#include <iostream>

int main() {
    const int a = 5; // a egy konstans változó
    // a = 10; // Hiba! nem módosítható a változó

    std::cout << "a: " << a << std::endl;
    
    return 0;
}

A kód futtatása során a a változó értéke 5 marad, és a próbálkozás, hogy értéket rendeljen hozzá (pl. a = 10), fordítási hibát eredményez. Ez azért van, mert a const-nak jelölt változó nem változtatható meg.

2. const mutatók

A const mutató (vagy konstans mutató) a C++ egyik hasznos funkciója. A mutatóval olyan memóriahelyekre mutathatunk, amelyek értéke nem módosítható. A mutató háromféleképpen deklarálható a const kulcsszó használatával:

  • const mutató, ahol a mutató maga nem változtatható.
  • Mutató egy const típusú objektumra, ahol az objektum értéke nem változhat, de a mutató maga módosítható.
  • Olyan mutató, amely egy const típusú objektumra mutat, és maga a mutató sem változtatható.

Példa:

  1. Const mutató, ahol a mutató nem változtatható: Itt a mutató maga nem változtatható, de a mutató által mutatott érték módosítható.

    int x = 5;
    int y = 10;
    const int* ptr = &x;  // mutató, amely nem változtatható
    *ptr = 7;  // Hiba! a ptr által mutatott értéket nem módosíthatjuk
    ptr = &y;  // Ez megengedett! a ptr újra hozzárendelhető
    
  2. Mutató egy const objektumra: Itt a mutató mutatott értékét nem módosíthatjuk, de a mutató maga változhat.

    const int* ptr = &x;  // A ptr mutat egy const objektumra
    *ptr = 7;  // Hiba! nem módosítható a ptr által mutatott objektum
    ptr = &y;  // Ez megengedett!
    
  3. Const mutató és const típus kombinálása: Itt sem a mutató, sem a mutató által mutatott érték nem változtatható.

    int x = 5;
    const int* const ptr = &x;  // A ptr és az érték is változhatatlan
    ptr = &y;  // Hiba! nem változtatható a ptr mutató
    

3. const függvényparaméterek és visszatérési értékek

A const kulcsszó alkalmazása függvényeknél is hasznos lehet. A függvényparaméterek és a visszatérési értékek megjelölhetők const-szal annak érdekében, hogy biztosak legyünk abban, hogy a függvény nem módosítja a paramétereket, illetve hogy a visszatérési értékek nem módosíthatók.

Példa:

#include <iostream>

void kiir(const int& a) {
    // a = 10;  // Hiba! a nem változtatható
    std::cout << "a értéke: " << a << std::endl;
}

int main() {
    int x = 5;
    kiir(x);
    return 0;
}

Ebben az esetben a const int& a paraméter garantálja, hogy a függvény nem fogja módosítani a a változót.

4. const a C++ osztályokban

A const kulcsszó osztályokban is hasznos lehet. Az osztálytag változókat const-nak jelölhetjük, ha azt akarjuk, hogy azok csak egyszer legyenek inicializálva, és a program futása során ne változzanak meg. Ezen kívül a const a member függvényeknél is használható, hogy biztosítsuk, hogy egy adott függvény nem módosítja az objektum állapotát.

Példa:

class Pelda {
private:
    const int konstans_szam; // const tagváltozó
public:
    Pelda(int szam) : konstans_szam(szam) {}
    
    void kiir() const { // const member függvény
        std::cout << "A konstans szám: " << konstans_szam << std::endl;
    }
    
    // void valtoztathat() const { // Hiba! nem módosíthatjuk az objektum állapotát
    //     konstans_szam = 10;
    // }
};

int main() {
    Pelda p(10);
    p.kiir();  // kiírja: A konstans szám: 10
    return 0;
}

A const tagváltozó garantálja, hogy a konstans_szam értéke a konstruktorban való inicializálás után nem változtatható meg. Az kiir függvény a const kulcsszóval van ellátva, jelezve, hogy nem módosítja az objektum állapotát.

5. const a szorosabb típusbiztonság érdekében

A const kulcsszó használata a kód szigorúbb típusbiztonságát biztosítja. Ha egy érték const típusú, akkor biztosak lehetünk benne, hogy nem módosítható, ami csökkenti a hibalehetőségeket és megkönnyíti a hibakeresést. Ez különösen akkor fontos, amikor nagyobb projekteken dolgozunk, vagy amikor a kód több fejlesztő kezében van, mivel segít a nem kívánt mellékhatások elkerülésében.

6. Összegzés

A const kulcsszó a C++ nyelvben rendkívül fontos és hasznos eszköz. Segít biztonságossá tenni a kódot azáltal, hogy garantálja, hogy egyes értékek nem változnak meg a program futása közben. Használható változók, mutatók, függvények paraméterei és visszatérési értékei esetén. A const segítségével a kód könnyebben érthető és karbantartható lesz, mivel világossá válik, hogy mely változók nem változnak, és mik azok az értékek, amelyeket nem szabad módosítani.