C++/S3/Soyut Sınıflar

< C++

C++ İLE PROGRAMLAMA
Kitap hakkında      Başlangıç    Temel kavramlar      Nesne      Gelişmiş özellikler       Standart kütüphane     API
Başvuru kaynakları        Ek kaynaklar      Kod örnekleri    
Acemiler için alıştırmalar

C++ İle Programlama

Bir programlama dili kitabı
C++ İle Programlama
C++ İle Programlama
Nesne
Bu şablonu düzenle

Sınıfa Başlarken

değiştir

C++ sınıflarına kadar C/C++ başlangıç konularını hallettiyseniz bundan sonra karşınıza yepyeni bir dünya diyebileceğimiz sınıflara sıra gelmiştir. Sınıf olaylarını anladığınızda birçok yazacağınız kod gruplarını tekrar kullanabilecek veya yazılmış olanları çağırarak hızlı bir şekilde programınızı tamamlayabileceksiniz. Zaten C++'a başlarken sınıflar ile ilgili birçok şey duymuşsunuzdur. Velhasılı öğrenince anlarsınız.

Sınıf yazmak

değiştir
 class deneme
 {
    public:

    private:

    protected:
 }

public → Bu aralığa fonksiyonlarımızı ve değişkenlerimizi tanımlaya biliriz. Yetki sınırı yoktur. Yazım için aşağıdaki örneğe bakın:

class deneme{ 
      public: 
           int x,y;
              deneme() //yapıcı
              { 
               x =y= 0;
              }
             ~deneme() //yıkıcı 
              { } 
          int ekle() 
              { 
              return x+y;
              }};

Dikkat ettiyseniz yapıcı ve yıkıcı olarak isimlendirdiğimiz iki kısım görülmektedir. Yapıcı değişkenlerimize ilkdeğer atamsı yapmak için vardır. Yazdığınız sınıflarda ilk değer atamsı yapmanız derledikten sonra hızlı bir şekilde çalışmasını sağlar. Bu ilk değer atamsı yapılmazsa bilgisayar kendisi ilk değer atamsı yapmaya çalışacaktır ve istenmeye sonuçlar elde edilebilir. Yıkıcı ise sınıfın kullanıp ihtiyaç bittikten sonra bellek boşaltımı için çağrılır.

class deneme{ 
      public: 
              deneme(); //yapıcı
             int' ekle(int',int);
              };

int deneme::ekle(int a,int b) 
              { 
              return x+y;
              }

Üstte yine aynı sınıfı yazdım fakat bir farkla fonksiyonu dışarı çıkardım ve dikkat ettiyseniz deneme::ekle() şeklimde yazdım bu yazılan fonksiyonun hangi sınıftan geldiğini belirtir. Böyle bir gösterimi anlatmamın nedeni dll ve *.h kütüphaneleri yazımı genelde sınıfları ve fonksiyonları ayrı bir şekilde olmasıdır.

private: → Sınıfın korumalı bölümü diyebiliriz. private altında belirtilen değişken ve fonksiyonlara public'te belirtilen fonksiyonlar ile çağrılıp işlenebilir. Fakat direkt olarak erişimi sağlanamaz. En az yetki prensibi için kullanılabilir. Böylelikle güvenlik açıklarına engel olabilirsiniz.

protected: