Sınıf Kapsam Alanı
[vc_row][vc_column][vc_column_text]
Kapsam
Bir değişkenin etki edebildiği alandır.
int x=5; cout << "x: " << x << endl; if(1){ x=6; cout << "icerde x: " << x << endl; } cout << "disarda x: " << x << endl;
Çıktı:
x: 5 icerde x: 6 disarda x: 6
İçerde aynı isim ve türde bir değişken tanımlasaydı dışardaki ve içerdeki farklı isim olarak aynı olsa da aslında farklı olacaktı. Eğer o değişken ile işlem yapılmak istenseydi en son tanımlanan üzerinde işlem yapılacaktı:
int x=5; cout << "x: " << x << endl; if(1){ int x=6; cout << "icerde x: " << x << endl; } cout << "disarda x: " << x << endl;
Çıktı:
x: 5 icerde x: 6 disarda x: 5
#include <iostream> using namespace std; int x=7; //global x int main() { int x=5; cout << "x: " << x << endl; cout << "global x(::x): " << ::x << endl; if(1){ int x=6; cout << "icerde x: " << x << endl; cout << "icerde global x(::x): " << ::x << endl; } cout << "disarda x: " << x << endl; return 0; }
Çıktı:
x: 5 global x(::x): 7 icerde x: 6 icerde global x(::x): 7 disarda x: 5
Globale erişmek için “::” kullanıldı.
Sınıf Kapsam Alanı
Bir sınıfta, tüm üye değişkenler ve fonksiyonlar sınıfın fonksiyonları tarafından kullanılabilmektedir. Erişim belirleyiciler ancak sınıfın dışında işlev görür. Sınıfın içerisindeki bir nesneye (.) veya (→) operatörleri ile erişilmektedir.
Örnek:
#include <iostream> using namespace std; class Insan { private: string isim; string soyIsim; int yas; public: Insan(); Insan(string Isim,string SoyIsim){ isim=Isim; soyIsim=SoyIsim; }; Insan(string isim,string soyIsim, int yas); ~Insan(); void setIsim(string isim); string GetIsim(){ return isim; }; string GetSoyIsim(); void SetYas(int yas); int GetYas(); void MerhabaDe(); }; int main() { Insan *insan1=new Insan("Nursena","Boluk"); cout<<"Isim: "<<insan1->GetIsim() <<endl; }
İsim Uzayı(Namespace)
İsim çakışmalarının önlenmesi amacıyla kullanılmaktadır.
Genel Kullanımı:
namespace namespaceAdi { /*sınıflar * fonksiyonlar * değişkenler */ }
Namespace içindeki sınıf, fonksiyon veya değişkene ulaşmak için:
namespace_adı::class_adı namespace_adı::fonksiyon_adı namespace_adı::değişken_adı
C++ standart kütüphanesine ait tüm üyeler std ad uzayında bulunmaktadır.
using namespace std; // Ad uzayinin tamamini kullanmaiza izin verir. using std::bir_üye // bir_üye'nin programın her yerinde kullanılmasını sağlar. std::bir_üye // bir_üye'ye bir kereligine erismenizi saglar.
İsim uzaylarının içerisindeki herhangi bir nesneye erişmek için kapsam çözünürlük operatörü kullanılmaktadır.
İç İçe İsim Uzayları
namespace foo { namespace goo { int x; //stuff } }
Aynı tanımlama şöyle de yapılabilir. (C++ 17)
namespace foo::goo { int x; }
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column width=”1/2″][vc_btn title=”Önceki Ders” color=”green” align=”left” i_icon_fontawesome=”fa fa-chevron-left” add_icon=”true” link=”url:https%3A%2F%2Fyapbenzet.org.tr%2Fcpp-yapici-yikici-fonksiyon%2F|||”][/vc_column][vc_column width=”1/2″][vc_btn title=”Sonraki Ders” color=”green” align=”right” i_align=”right” i_icon_fontawesome=”fa fa-chevron-right” add_icon=”true” link=”url:https%3A%2F%2Fyapbenzet.org.tr%2Fcpp-kalitim%2F|||”][/vc_column][/vc_row]