C++ C++ ın Temelleri (Basics of C++)
Konular Temel Kavramlar o C++ Hakkında o C++ ın Tarihçesi C++ Derleyicisi, İndirme, Kurulum ve Proje Oluşturma o C++ Derleyicisi o Code::Blocks İndirme o Code::Blocks Kurulumu o Code::Blocks Başlatma o Yeni Proje Oluşturma o Yeni Proje Oluşturma ve Arayüz o Neden Konsol Uygulaması? o C++ da Dosya Uzantıları Eğitim TV - egitimtv.biz - facebook.com/egitimtv 2
Temel Kavramlar Eğitim TV - egitimtv.biz - facebook.com/egitimtv 3
C++ Hakkında C++, C programcılarının Nesneye Dayalı Programcılığa (OOP) verdikleri yanıttır. Genel olarak her C programı aynı zamanda bir C++ programıdır, ancak her C++ programı bir C programı değildir. Bu durumun bazı istisnaları mevcuttur. C nin katı temelleri üzerine kurulmuş olan C++, C nin gücüne, zarafetine ve esnekliğine hiçbir zarar vermeden OOP i (ve diğer pek çok yeni özelliği) destekler. C++, programcıların dünya çapında evrensel dili haline gelmiştir ve gelecek kuşak yüksek performanslı yazılımları oluşturacak olan dildir. Her profesyonel programcının bilmesi gereken en önemli dillerden birisidir. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 4
C++ ın Tarihçesi C++, ilk olarak 1979 yılında New Jersey Murray Hill bölgesinde bulunan Bell Laboratuvarları'nda Bjarne Stroustrup tarafından oluşturuldu. C++, orta-düzey bir programlama dilidir. C++, Windows, Mac ve UNIX platformlarının tümünde çalışır. İlk olarak "Sınıflı C" adı verildi. 1983 yılında ismi C++ a çevrildi. O günden bu güne C++ üç önemli evrim geçirdi. Bunlardan ilki 1985, ikincisi 1990 yılındadır. Üçüncüsü ise C++ ın standartlaşma sürecinde meydana geldi. 90 lı yılların başlarında C++ ı standartlaştırmak için bir çalışma başlatıldı. O zamanlar ANSI ile ISO birleşerek bir standart belirleme komitesi oluşturdu. Komitenin ilk tasarısı 25 Ocak 1994 te sunuldu. Bu teklifte Stroustrup tarafından tanımlanan özelliklere sadık kalındı ve yeni özellikler eklendi. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 5
Bjarne Stroustrup Eğitim TV - egitimtv.biz - facebook.com/egitimtv 6
C++ ın Tarihçesi İlk tasarının hemen ardından standardın çok geniş bir şekilde yayılmasına neden olan bir olay meydana geldi: Alexander Stepanov tarafından Standart Şablon Kütüphanesi (STL, Standart Template Library) oluşturuldu. STL, verileri işlemek için kullanılabilecek genel bir rutinler kümesidir, güçlü ve seçkindir. Fakat aynı zamanda oldukça büyüktür. İlk tasarıdan sonra komite C++ ın STL yi içermesine karar verdi. STL nin eklenmesiyle C++ ilk tanımlanan sınırlarını aştı. Ancak; STL nin eklenmesiyle C++ ın standartlaşma süreci yavaşlamaya başladı. Şunu da belirtmek gerekir ki; C++ ın standartlaşması beklenen süreden daha uzun sürdü. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 7
C++ ın Tarihçesi Fakat şu anda C++ standartlaşma sürecini çoktan geride bıraktı ve artık derleyiciler (compiler) bu yeni özelliklerin hepsini desteklemektedir. Bu derste anlatacağımız C++ ın ANSI/ISO standartlaştırma komitesi tarafından oluşturulan son sürümüdür. Yıl C++ Standardı (Resmi Adı) Resmi Olmayan Adı 1998 ISO/IEC 14882:1998 C++98 2003 ISO/IEC 14882:2003 C++03 2007 ISO/IEC TR 19768:2007 C++TR1 2011 ISO/IEC 14882:2011 C++11 2014 ISO/IEC 14882:2014 C++14 Eğitim TV - egitimtv.biz - facebook.com/egitimtv 8
C++ Derleyicisi, İndirme, Kurulum ve Proje Oluşturma Eğitim TV - egitimtv.biz - facebook.com/egitimtv 9
C++ Derleyicisi C++ ile program yazmak için Not Defteri veya NotePad++ gibi bir metin editörü yeterlidir. Ancak bu yöntemle program yazmak oldukça zaman alıcı ve yorucudur. Ayrıca Not Defteri ve NotePad++ metin editörü olduğu için derleme işlemi yapmaz, bu yüzden bir derleyiciye ihtiyaç duyulur. Üstelik hata kontrolü de yapılmadığından, hata olup olmadığını anlamak özellikle amatörler için zorlaşır. Piyasada çok sayıda C++ derleyicisi vardır. Örneğin; Dev-C++, Visual C++, C++ Builder, Intel C++ Compiler, Code::Blocks.. Ancak bunların arasından hızı, sürekli güncellenmesi ve kolay kullanımı ile Code::Blocks ön plana çıkmaktadır. Şimdi Code::Blocks programını indirmek için; adresine gidiyoruz. http://www.codeblocks.org/ Eğitim TV - egitimtv.biz - facebook.com/egitimtv 10
Code::Blocks İndirme Code::Blocks ana sayfasında Downloads butonuna tıklayın. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 11
Code::Blocks İndirme Açılan Downloads sayfasında ise Download the binary release bağlantısına tıklayın. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 12
Code::Blocks İndirme Şimdi de yazılımı yükleyeceğiniz platformu (İşletim Sistemini) gösteren (Windows 2000/XP/Vista/7/8) bağlantıya tıklayın. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 13
Code::Blocks İndirme İçinde GCC Compiler barındıran codeblocks-13.12mingw-setup.exe karşısındaki iki alternatif bağlantıdan Sourceforge.net e tıklayın. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 14
Code::Blocks İndirme Bu sayfada normalde bir şey yapmanıza gerek yok, indirme 5 sn. sonra otomatik olarak başlar. Ancak eğer başlamazsa Direct Link e tıklayın. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 15
Code::Blocks İndirme Dosyayı kaydetme penceresi her tarayıcı için farklıdır. Aşağıdaki Firefox tarayıcısının indirme penceresidir. Yazılımı bilgisayarımıza indirmek için Dosyayı Kaydet butonuna tıklıyoruz. Dosyayı bilgisayarımıza indirdikten sonra artık yazılımın kurulumunu yapmaya başlayabiliriz. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 16
Code::Blocks Kurulumu Dosya indikten sonra aşağıdaki simgenin üzerine Mouse Sol Tuşu ile çift tıklayarak çalıştırıyoruz. Ardından, aşağıdaki küçük pencere kısa bir süre için görünür ve yazılımın kurulum dosyaları bilgisayara kopyalanır. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 17
Code::Blocks Kurulumu Aşağıdaki ekran karşınıza geldiyse, yazılım bilgisayar sisteminin yazılım gereksinimlerini kontrol ediyor demektir. Kısa bir süre sonra bu ekran kaybolacaktır. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 18
Code::Blocks Kurulumu Code::Blocks Kurulum Sihirbazı başlangıç ekranı Next butonuna tıklanarak geçilir. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 19
Code::Blocks Kurulumu Code::Blocks Lisans Sözleşmesi ekranı da I Agree butonuna tıklanarak geçilir. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 20
Code::Blocks Kurulumu Code::Blocks Bileşen Seçimi ekranında tüm bileşenler seçili haldeyken Next butonuna tıklanır ve geçilir. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 21
Code::Blocks Kurulumu Code::Blocks Kurulum Alanı Seçim ekranında hiçbir değişiklik yapmadan, Install butonuna tıklanarak kuruluma başlanır. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 22
Code::Blocks Kurulumu Gerekli yapılandırmaların ardından, Code::Blocks kurulumu artık başladı, kurulumun tamamlanması beklenir. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 23
Code::Blocks Kurulumu Code::Blocks kurulumu başarıyla tamamlanmışsa, aşağıdaki ekran karşımıza gelir ve bu ekranda "Code::Blocks yazılımını şimdi çalıştırmak istiyor musunuz?" diye sorar. Bu ekranda Evet butonuna tıklanarak geçilir. NOT: Hayır ı seçerseniz program kurulumu bitikten sonra, yazılımı kendiniz de masaüstüne oluşturulan kısayol ile çalıştırabilirsiniz. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 24
Code::Blocks Kurulumu Code::Blocks Kurulum Tamamlandı ekranı Next butonuna tıklanarak geçilir. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 25
Code::Blocks Kurulumu Code::Blocks Kurulum Sihirbazı bitiş ekranı Finish butonuna tıklanarak geçilir. Artık kurulum tam olarak tamamlandı. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 26
Code::Blocks Başlatma Code::Blocks kurulumu sırasında, "Code::Blocks yazılımını şimdi çalıştırmak istiyor musunuz?" diye sorduğunda Evet dediğimiz için program otomatik olarak aşağıdaki görüntünün ekrana gelmesiyle başlar. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 27
Code::Blocks Başlatma Karşımıza gelen bu ekran derleyici otomatik belirleme ekranıdır ve görüldüğü üzere; GNU GCC Compiler seçilmiş. OK butonuna tıklayarak geçiyoruz. (Bu ekran sadece ilk çalıştırmada görülür.) Eğitim TV - egitimtv.biz - facebook.com/egitimtv 28
Code::Blocks Başlatma Son olarak bu ekranda dosya ilişkilendirme işlemini yapıyoruz. Yani; Code::Blocks programı hangi dosya türlerini çalıştırsın ona karar veriyoruz. Bizim için 3. seçenek en uygun olanıdır. Bu seçenek ile C ve C++ dosya türleri Code::Blocks programıyla ilişkilendiriliyor. OK butonuna tıklayarak geçiyoruz. (Bu ekran da sadece ilk çalıştırmada görülür.) Eğitim TV - egitimtv.biz - facebook.com/egitimtv 29
Code::Blocks Başlatma Ve nihayet karşınızda; Code::Blocks C++ Derleyicisinin arayüzü. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 30
Yeni Proje Oluşturma Yeni bir proje oluşturmak için; ilk yol Açılış Ekranı ndan Create a New Project veya ikinci yol olarak File > New > Project tıklanır. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 31
Yeni Proje Oluşturma Oluşturulacak projenin şablonunu seçme ekranından Console Application seçilir ve Go butonuna tıklanır. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 32
Yeni Proje Oluşturma Bu ekran yeni konsol uygulaması oluşturma sihirbazıdır. Skip this page next time işaretlenerek (işaretlersek bir dahaki sefere bu sayfa görüntülenmez), Next butonuna tıklanır. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 33
Yeni Proje Oluşturma Şimdi de kullanacağımız dili seçiyoruz. Burada iki seçenek vardır: C ve C++. Biz C++ ı seçip Next butonuna tıklıyoruz. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 34
Yeni Proje Oluşturma Projeye isim vermek için Project title kısmına uygun bir isim giriyoruz ve ardından da projenin kaydedileceği yeri seçmek için Folder to create Project in kısmındaki butonuna tıklıyoruz ve açılan pencerede kayıt yerini seçip, Next butonuna tıklıyoruz. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 35
Yeni Proje Oluşturma Son olarak derleyici seçim ekranında herhangi bir değişiklik yapmadan Finish butonuna tıklıyoruz ve proje karşımıza geliyor. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 36
Yeni Proje Oluşturma ve Arayüz Çalıştır (Run) Derle (Build) Derle ve Çalıştır (Build and Run) Sources in başındaki + işaretine tıklayın. Sonra main.cpp ye çift tıklıyoruz. Şimdi Derle ve Çalıştır komutuna tıklayarak programı çalıştıralım. Görüldüğü üzere derleyici, program için gerekli minimum kodları otomatik olarak ekler. Detaylı Derleme Komutları Eğitim TV - egitimtv.biz - facebook.com/egitimtv 37
Yeni Proje Oluşturma Aşağıdaki program penceresi, program derlenip çalıştırıldığında karşımıza gelir. Ekranda Hello World! yazıyorsa, derleyici başarıyla çalışıyor demektir. Kırmızı çarpıya basarak çıkış yapabilirsiniz. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 38
Neden Konsol Uygulaması? Aklınıza şu soru gelebilir. Neden Görsel Programlama Dilleri (Visual Programming Languages) kullanmıyoruz da Konsol Uygulaması (Consol Application) kullanıyoruz? Eğer bilgisayarınızda Windows varsa ve hedefiniz Windows tabanlı programlar yazmaksa, o halde öğrenmek için doğru dili seçtiniz demektir. C++, size Windows programcılığı imkanlarını sunmaya hazırdır. Peki, neden Konsol Uygulaması? Aslında bunun iki nedeni var. Bunlardan ilki; Windows programları yapıları gereği büyük ve karmaşıktırlar. En küçük Windows programının iskeleti bile 50 ila 70 satırlık bir kod içerir. C++ ın özelliklerini gösterecek Windows programları yazmak ise yüzlerce satır gerektirir. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 39
Neden Konsol Uygulaması? Özetle; Konsol Uygulaması Windows programcılığını öğrenmek için uygun değildir, ancak bir ön adımdır. Windows programlarını derlemek için Windows tabanlı çalışan derleyiciler (Visual C++ gibi) kullanabilirsiniz. İkincisi ise; Görsel Programlama Dilleri nde nesnelerin (objects) bir çoğu ön tanımlı olarak gelir. Bu da bizi üretmekten daha çok tüketmeye iter. Ancak bizim amacımız Nesneye Dayalı Programlama yı öğrenmek (nesneleri oluşturmak vs.) ve daha da ötesinde mantığını içselleştirmektir. C++ da uzmanlaşır uzmanlaşmaz, bildiklerinizi Windows a uygulayabilirsiniz. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 40
İpucu Programcılar için uzantılar son derece önemlidir. Uzantıları görmek gerekir. Ancak Windows varsayılan olarak uzantıları gizler. Bunu düzeltmek için Denetim Masası > Klasör Seçenekleri komutuna tıklanır ve yandaki pencere açılır. Açılan pencerede Görünüm sekmesine geçilir ve Bilinen dosya türleri için uzantıları gizle nin işareti kaldırılır. Ardından Uygula butonuna basılır. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 41
C++ da Dosya Uzantıları C++ dosyalarının uzantısı.cpp dir. (cplusplus ın kısaltmasıdır.) Başlık dosyalarının uzantısı.h dır. (header ın kısaltmasıdır.) Program dosyalarının uzantısı.exe dir. (executable ın kısaltmasıdır.) Eğer oluşturduğunuz proje klasörünün içine bakarsanız, burada main.cpp adlı bir C++ dosyası görürsünüz. Ayrıca, bin klasörünün içindeki Debug klasörüne girerseniz de burada proje_adi.exe isimli bir çalıştırılabilir program dosyası görürsünüz. Ancak, bu.exe dosyasını çalıştırırsanız, bir an için ekranda görünür ve kaybolur. Bunun nasıl çözüleceği ilerleyen derslerde anlatılacaktır. Eğitim TV - egitimtv.biz - facebook.com/egitimtv 42
Eğitim TV Web www.egitimtv.biz Facebook www.facebook.com/egitimtv Twitter www.twitter.com/egitim_tv Eğitim TV - egitimtv.biz - facebook.com/egitimtv 43