İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Engin Ünal
eunal@europe.com

C ve C++

Öğrenilmesi zaman alan bu iki dil aslında programcılığın temel dillerinden biri olması sebebiyle bence öğrenilmesi gerekli dillerdir. Sebebi de şu;

C++ bilen birisi Java'yı çok kısa sürede öğrenir ya da C#'ı da çok kısa sürede öğrenir çünkü bu dillerin aralarında çok ta büyük farklılıklar yok, aksine çok ta benzerlik var. C'den C++'a geçiş daha bile zordur. C++, Java, C# dilleri günümüzdeki en iyi, en modern ve en sağlam yapıya sahip dillerdir ve bunların hepsi Object Oriented dillerdir dolayısıyla aralarında birçok programlama benzerliği bulunması doğaldır. Zaten Java'nın yazımı(syntax) C++ ile benzerlik göstermekte, C# 'ınki de hem Java hem C++ ile benzerlik göstermektedir. Bence öncelikli olarak C++ ile başlamak öenmli çünkü C++ tüm dünyada geniş kullanıma sahip çok iyi, çok sağlam temel bir dil. Bu dilleri öğrenmek için bir sıralama yapılırsa önce C, C++, Java veya C# derim. Tabi önce C++'tan da başlanabilir. Bu konuda önemli bir nokta var:

Yani doğrudan C++ ile programlamaya başlamamak için bir sebep yok elbette öğrenmesi zaman alacaktır ama öğrendikten sonra getirdiği avantajlar buna değer.

Biraz C++'ın yapısından bahsedersem:

Object Oriented bir dil olduğundan OOP nin özelliklerini taşımaktadır. Öncelikle object(nesne) kavramının bilinmesi gerekir. Object, kod ile verinin birbirne bağlandığı ve tanımlandığı alandır. Program içinde nesneler tanımlanır ve bu nesnelerle ve bu nesnelerin bileşenleri ile işlemler gerçekleştirilir.

Encapsultaion:

Nesne bizim depolama yaptığımız biryerdir. Depolama temel olarak kod ve verinin biraraya getirilmesi ve dış etkilerden korunması demektir.

Polimorfizm:

Aynı isimde birden çok fonksiyon ya da operator tanımlamamıza imkan veren bir özelliktir. Yani bir nesne içinde aynı isimde birden çok fonksiyon olabilir ve bunlar birbirne karışmaz kendi kullanım alanlarında kullanılırlar. Örneğin add isimli bir fonksiyonumuz olsun ve MakeIt isimli bir nesnemiz olsun.

MakeIt {
  add(int i) { return i + 5; }
  add(char c) { return c + 1; }
}

Yukarıdaki örnekte add isimli iki fonkisyon bulunuyor ilki "i " isimli değişkeni 5 ile toplar, ikincisi c isimli harf değişkenden bir sonraki harfi bulur. Add isimli iki fonksiyon da birbirinden bağımsız çalışır, derleyici hangisini çalıştırcağını nerden bilir?

Derleyici hangi add'in çalıştırılması gerektiğine değşkene bakarak karar verir. Eğer parametre olarak integer(tamsayı - int) bir değerle add fonksiyonunu çağırırsanız ilk add çalıştırılır, eğer char(karakter) bir parametre ile add fonksiyonunu çağırırsanız ikinci add çalıştırılır. Örnek:

makeit.add( 99 ); yazdığımızda ilk add çalıştırılır çünkü parametre bir tamsayı ve sonuç 99 + 5 = 104 döner

makeit.add( 'a' ); yazdığımızda ikinci add çalıştırılır çünkü parametre bir karakter ve sonuç 'a' + 1 = 'b' döner

Inheritance :

Miraz adı üzerinde bir nesnenin diğer bir nesneden bazı özellikleri alması demektir. Bu çok kullanışlı kavramlardan biridir, yeni oluşturduğunuz bir nesne daha önce var olan bir nesneden sizin daha önce yapmış olduğunuz bazı özellikleri devralabilir ve kullanabilir. Bu fazladan kod yazma gereğini ortadan kaldıran bir özelliktir.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır