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]