Scope
Belli bir alan, gövde, kapsam olarak düşünebiliriz. { ile başlar } ile biter. Bir scope içinde olan o scope içinde kalır. Aslında bunu tarlaları çevreleyen çit olarak, ülkelerin sınırı olarak da düşünebilirsiniz.
int main(){ /* buralar hep çimendi */ }
Local/Global Variables
Bir değişken bir fonksiyonun daha doğrusu scope’un içinde olduğunda o scope a ait lokal bir değişken olmuş oluyor. Scopeların dışında tanımlanan değişkenlere de global değişken diyoruz.
#include <iostream>
using namespace std;
int gi{}; // bu bir global değişkendir
void f() {
int fi{}; // bu bir local değişkendir
//cout << mi << endl; // HATA
cout << gi << endl;
cout << fi << endl;
}
int main() {
int mi{}; // bu da bir local değişkendir
cout << mi << endl;
cout << gi << endl;
//cout << fi << endl; // HATA
}
Farklı scopelardaki değişkenlere ulaşıp kullanamıyoruz AMA global değişkenlere ulaşıp kullanabiliriz. Farklı scopelardaki değişkenlere ulaşamadığımız için aynı değişken ismini tekrar tekrar kullanabiliriz.
Peki global bir değişkenle local bir değişken aynı isme sahip olabilir mi? Evet sahip olabilir. Bu durumda local değşiken geçerli olur. Tabi ki global değişkene de erişebiliriz bunun için değişkennin başnı :: koyuyoruz
#include <iostream>
using namespace std;
int sayi = 5;
int main() {
int sayi = 10;
cout << sayi << endl; // 10
// globaldeki sayiya erismek icin
cout << ::sayi << endl; // 5
// Aslinda daha da ileri gidebiliriz
{
int sayi = 7;
cout << sayi << endl; // 7
// globaldeki sayiya erismek icin
cout << ::sayi << endl; // 5
}
}
Leave a Reply