C++ Class

Merhaba arkadaşlar,artık C++’da artık nesne-class kavramlarından bahsedeceğim.Class(sınıf),nesneye dayalı programlarda en önemli unsurdur.Classlar kodları bölümlere ayırarak karışıklığı ortadan kaldırırlar.Classlar içinde bulunan fonksiyonlar,değişkenler vs. bulunabilir.Class’lar nesneler için durumlarını ve özelliklerini tanımlarlar.
Class genel tanımı
class SinifAdi{
}
public int degisken1;
public degisken2;
public int fonksiyon()
{
}
}

Class tanımında birde karşımıza public terimi çıktı.Public diğer class’lardan erişilebilirliği sağlar.Public dışında private ve protected erişim belirteçleri vardır.Private olan değişkenler,fonksiyonlar başka bir class tarafından erişimi tamamen engellenmiş oluyor. Protected olarak tanımlananlarda ise,sadece alt sınıflarından erişim sağlanabiliyor.
Nesne sınıflardan üretilir.Nesneler classlara ulaşmamızı sağlarlar.Aynı classtan oluşan nesne özellikleri benzerdir fakat adresleri farklıdır.Nesneler bellekte bir yer tutarlar.Nesneleri başka bir class’ta çağırarak o class’taki işlemler yapılır.
Bir örnek ile tüm anlattıklarımı hem göstermiş hemde pekiştirmiş olalım.

Bir tane sinif adinda bir class oluşturduk.Classımıza ulaşılması kolay olması açısından değişkenleri ve fonksiyonlarımızı public olarak tanımladık.değişkenlerimizi class içerisinde anımladığımızan dolayı her iki fonksiyonda da kullanabildik.Bir atama yaptıktantan sonra atadığımız değerleri ikinci fonksiyonda görmüş olduk.Main fonksiyonumuzda ise nesne adında bir nesne oluşturmuş olduk.Ve bu nesne ile classımızın içerisindeki fonksiyonlara ulaşmış olduk.Public sayesinde class içerisinde ki işlemleri görmüş olduk.Peki public değilde private olarak tanımlasak ne olurdu?
Kod içerisinde public olarak yazdığımız yere private yazsaydık şu hatayla karşılaşacaktık;

Bize burda private olarak tanımladığın class’a ulaşamıyorum diyor.Bu hatadan kurtulmak için public olarak tanımlamalıyız.
Şimdi class’ı tamamen değil ama değişkenleri private yaptığımız zaman yine aynı hata ile karşı karşıya kalırız.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir