static variable (tsz. static variables)
A statikus változó C++-ban egy olyan változó, amelynek élettartama a teljes programfutás alatt megmarad, és az értéke nem veszik el a függvényhívások között. A static
kulcsszóval lehet deklarálni. Két fő típusa van:
Ha egy változót egy függvényen belül static
-ként deklarálsz, akkor annak értéke megmarad a függvényhívások között, de a láthatósága csak a függvényen belül érvényes.
#include <iostream>
void countCalls() {
static int count = 0; // Értéke megmarad a függvényhívások között
count++;
std::cout << "A függvényt eddig " << count << " alkalommal hívták meg.\n";
}
int main() {
countCalls();
countCalls();
countCalls();
return 0;
}
Kimenet:
A függvényt eddig 1 alkalommal hívták meg. A függvényt eddig 2 alkalommal hívták meg. A függvényt eddig 3 alkalommal hívták meg.
Osztályon belül a statikus adattagok közösek az osztály összes példánya között. Azaz, ha egy objektum módosítja az értékét, akkor az összes többi objektum is ezt az új értéket fogja látni.
#include <iostream>
class Counter {
private:
static int count; // Statikus osztályváltozó
public:
Counter() { count++; }
static void showCount() { // Statikus függvény, amely csak statikus változókat érhet el
std::cout << "Létrehozott objektumok száma: " << count << std::endl;
}
};
// Statikus változó inicializálása
int Counter::count = 0;
int main() {
Counter obj1;
Counter obj2;
Counter obj3;
Counter::showCount(); // Kiírja a példányok számát
return 0;
}
Kimenet:
Létrehozott objektumok száma: 3
Hasznos, ha globális állapotokat akarsz kezelni, de korlátozott láthatóság mellett.