Selamun Aleykum

*************************

İyi yazılım muhendisliğini temel prensiplerinden birisi, arayuzu uygulamadan (yapılıştan) ayırmaktır. Bu, programların daha kolay değiştirilmesini sağlar. İstemci goz onune alındığında, bir sınıfın istemciye sunduğu arayuz değişmediği surece sınıfın yapılışındaki değişiklikler istemciyi etkilemez.

Gercekte, her şey bu kadar da pembe değildir. Oncu dosyalar, yapılışın bazı kısımları ve yapılışla ilgili ipıcları verir. Orneğin, satır-ici uye fonksiyon tanımlamalarının, oncu dosya icinde olması gerekmektedir cunku derleyici istemciyi derlerken, istemci inline fonksiyon tanımlamalarını kullanıldıkları yere yerleştirebilmelidir. private uyeler, oncu dosya icindeki sınıf tanımlamasınad listelenir, boylece istemciler erişememelerine rağmen bu uyeler istemciler tarafından gorulebilir.

CC programı yapılırken, her bir sınıf tanımlaması oncu dosya icine konur ve sınıfın uye fonksiyon tanımlamaları da aynı isimli kaynak kodu dosyası icine konur. Oncu dosyalar, sınıfın kullanıldığı her dosyaya eklenir (#include ile) ve kaynak kodu dosyası ana program dosyası ile derlenip bağlanır. Cok kaynak dosyalarından oluşan programların nasıl derlenip bağlandığını derleyici belgelerini incelerseniz goreceksiniz.

Resim 1, Zaman sınıfının tanımlandığı zaman1.h uye fonksiyon tanımlamalarının bulunduğu zaman1.cpp ve main’i iceren zaman2.cpp dosyalarından oluşmaktadır.

**************************

Kodlar
***************

zaman1.h



zaman1.cpp



zaman2.cpp



**************************

Kodların Cıktısı



**************************

Sınıf bildiriminin aşağıdaki onişlemci komutlarının arasında yapıldığına dikkat ediniz.

/7oncu dosyanın bir cok kez eklenmesini onlemek icin
#ifndef ZAMAN1_H
#define ZAMAN1_H

...

#endif

Buyuk programlar yapılırken, diğer tanımlama ve bildirimleri de ondu dosya icine koyarız. Yukarıdaki onişlemci komutları, eğer ZAMAN1_H ismi tanımlanmışsa #ifndef ve #endif arasındaki kodun eklenmesini engeller. eğer oncu dosya daha onceden dosyaya eklenmemişsa, ZAMAN1_H, #define komutuyla tanımlanır. ve oncu dosyadaki ifadeler eklenir. Eğer oncu dosya daha onceden eklenmişse, ZAMAN1_H tanımlanmış olacak ve oncu dosya tekrar eklenmeyecektir. Bir oncu dosyayı bircok kez eklemeye calışmak, genelde başka oncu dosyaları iceren bir cok oncu dosyası olan buyuk programlarda olur.
__________________