Sınıf Dosyalarını Ayırma

[vc_row][vc_column][vc_column_text]

Header Dosyaları(.h)

C++ programları genellikle birden fazla sınıf dosyaları içerirler.Sınıf dosyaları,gerçek dünyadaki nesnelerin modellenmesine izin verir,kodun işlevselliğini arttırır.Programlardaki dosyalardan her biri,yine aynı uygulamada tanımlanan sınıf dosyalarından herhangi birini veya tümünü kullanabilir.Buna göre sınıf dosyası tanımı,onu kullanan her dosya için aynı olmalıdır.Kodun çokluğunu önlemek için c++ ,header file(başlık dosyaları/üstbilgi dosyaları) kavramını ve #include önişlemci yönergesini kullanır. .h uzantılı header dosyası,sınıf dosyasında bulunan bildirimleri içerir.Bu bildirimler genel olarak fonksiyon prototipleri ve sınıf constructor(sınıf kurucu fonksiyonu) içerir.Uygulamayı gerçekleştirecek olan gerçek kodlar ise .cpp uzantılı uygulama dosyasında bulunur.

#ifndef UNTİTLED_SEKİL_H
#define UNTİTLED_SEKİL_H
class sekil{
public:
    int boy;
    int en;
    sekil(int,int);
    int alanBul();
};

#endif //UNTİTLED_SEKİL_H

 

Burada sekil isimli bir header dosyası, sekil sınıfı,kurucusu,üye değişkenleri tanıtıldı.Public anahtar kelimesi,diğer sınıflardan bu üyelere erişme imkanı veriyor.

ifndef (if not defined): Bu satır; eğer ki şu ana kadar UNTİTLED projesine ait sekil.h dosyası tanımlanmamış ise bir alt satıra geçer ve bu dosyayı define eder.Eğer define edilmiş ise if döngüsü gibi çalışır ve ona bağlı kod satırlarını atlar.Bu sürekli olarak aynı dosyanın tanımlanmasını önler. endif ise tanımlanacak alanın sonunu belirtir.

Uygulama Dosyaları(.cpp)

Uygulama dosyası .cpp uzantılıdır ve prototiplerin gövdelerinin yazılacağı alandır.Bu dosyaya header dosyasının include edilmesi gereklidir.

#include "sekil.h"

int sekil::alanBul(){
    return boy*en;
}

sekil::sekil(int b,int e){
    boy=b;
    en=e;
}

 

Görüldüğüü gibi header dosyasında tanımlanan metotların gövdeleri burada kodlandı.

main.cpp

Son olarak programın çalışmaya başlayacağı kısım maindir. İsteğe göre main.cpp dosyası kullanabilir veya diğer uygulama dosyası içinde kullanılabilir.main.cpp dosyası kullanılacak ise header dosyasının include edilmesi gerekecektir.Eğer diğer .cpp uzantılı dosya kullanılacak ise ;

#include "sekil.h"
#include <iostream>
using namespace std;

int sekil::alanBul(){
    return boy*en;
}

sekil::sekil(int b,int e){
    boy=b;
    en=e;
}

int main() {

    sekil kare(15,20);
    cout<<kare.alanBul();
    return 0;
}

 

şeklinde,metot gövdeleri kodlandıktan sonra main fonksiyonu kullanılabilir.

ÖNEMLİ NOT
#include "C:\users\mehmetcane\CLionProjects\untitled\sekil.h"

Dosyaları birbiri içinde include ederken,dosyalar aynı dosya yolu üzerinde bulunmalıdırlar.Aksi halde bu şekilde tam dosya yolunu yazarak include etmek gerekir.

 

[/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-bellek-yonetimi%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-yapici-yikici-fonksiyon%2F|||”][/vc_column][/vc_row]