global scope
Főnév
global scope (tsz. global scopes)
- (informatika) A globális változók olyan változók, amelyeket egy fájl tetején, a függvényeken kívül deklarálunk. Ezek a program teljes futási ideje alatt léteznek, és bárhonnan elérhetők ugyanabban a fájlban.
1. Példa globális változóra
#include <iostream>
int globalVar = 10; // Globális változó
void kiir() {
std::cout << "Globalis valtozo: " << globalVar << std::endl;
}
int main() {
kiir(); // Elérhető a globális változó
globalVar = 20; // Módosítható is
kiir();
return 0;
}
🔹 Mi történik itt?
- A globalVar változót a függvényeken kívül deklaráltuk, így elérhető mind a kiir() függvényben, mind a main() függvényben. - A kiir() képes kiolvasni és kiírni a globális változó értékét. - A main() módosíthatja a változót, és ez a módosítás mindenhol érvényes lesz.
2. Globális változók veszélyei
Bár a globális változók kényelmesek lehetnek, van néhány hátrányuk: - Megnehezíthetik a hibakeresést, mert bárhonnan módosíthatók. - Nehézkes párhuzamos programozás esetén, mert több szál is módosíthatja őket. - Növelhetik a függőségeket, ami rontja a kód karbantarthatóságát.
3. statikus globális változók (file-scope)
Ha egy globális változót static kulcsszóval jelölünk, akkor csak abban a fájlban lesz elérhető, ahol deklarálták.
#include <iostream>
static int localGlobal = 5; // Csak ebben a fájlban látható
void kiir() {
std::cout << "Local Global: " << localGlobal << std::endl;
}
int main() {
kiir();
return 0;
}
🔹 Ezt mire jó?
- Ha több fájlban is van ugyanilyen nevű változó, azok nem keverednek. - A változó rejtve marad más fájlok elől.
4. Az extern kulcsszó – Globális változók megosztása több fájl között
Ha egy globális változót több fájlban is szeretnénk használni, az extern kulcsszóval tudjuk bejelenteni más fájlokban.
global.cpp fájl:
int globalVar = 42; // Globális változó deklaráció és definiálás
main.cpp fájl:
#include <iostream>
extern int globalVar; // Csak deklaráció, a változó máshol van definiálva
int main() {
std::cout << "Globalis valtozo: " << globalVar << std::endl;
return 0;
}
🔹 Mi történik itt?
- Az extern kulcsszó jelzi, hogy a változót másik fájlban definiálták. - Az összekompilált programban az értéke a global.cpp fájlból fog érkezni.
Összegzés
✅ Globális változók előnyei: - Bárhonnan elérhetők az adott fájlból. - Könnyen megoszthatók extern segítségével több fájl között. - Hasznosak, ha egy állapotot az egész program szintjén kell tárolni.
❌ Hátrányai: - Megnehezíti a hibakeresést. - Nehezebben karbantartható kódot eredményezhet. - Több szálas programokban adatversenyt (race condition) okozhat.
👉 Javaslat: Használj inkább osztályokat, singleton mintát vagy függvényparamétereket globális változók helyett, ahol csak lehet.
- global scope - Szótár.net (en-hu)
- global scope - Sztaki (en-hu)
- global scope - Merriam–Webster
- global scope - Cambridge
- global scope - WordNet
- global scope - Яндекс (en-ru)
- global scope - Google (en-hu)
- global scope - Wikidata
- global scope - Wikipédia (angol)