C ve C++, ilk duyduğunuzda sanki iki aynı şeymiş gibi geliyor. Bu yazımızda sizlere, doğaları gereği birbirinden oldukça farklı olan bu programlama dilleri arasındaki farkları sizlere anlatmaya çalışacağım. Her ne kadar C ve C++'in güncelliklerini kaybettiği iddia edilse de C++ halen daha Nesne Tabanlı Programlama dili denince ilk akla gelen dil. C ise program ve yazılım geliştiricileri tarafından hala daha büyük oranda kullanılıyor.
Gelin beraber, bu farklılıkların bulunduğu bir liste yapalım ve iki dil arasındaki farklılıklara yakından göz atalım.
C++’ ın en başta gelen farklılığı ise Nesne Yönelimli olmasıdır. Buna karşın C fonksiyonel bir dildir. Peki tam olarak nedir Nesnel Yönelimli Programlama? Kısaca değinecek olursak; C dilinde (veya fonksiyonel herhangi bir dilde) program yazarken programımızı fonksiyonlara parçalar ve tasarlardık. Yani programımızın temel parçası fonskyionlar idi. C++ da ise programlarımızın temel birimi nesnelerdir.
C’de fonksiyonun parametresi yoksa, prototipin fonksiyon parametre listesinde void kelimesi bulunur. Örneğin C’de f1( ) adlı bir fonksiyonun parametresi yoksa(ve geriye bir char gönderiyorsa) bu fonksiyonun prototipi şu şekilde olur:
Fakat C++’da void‘in yazılması isteğimize bağlıdır. Sonuç olarak C++’da f1( )‘in prototipi genelde şu şekildedir: char f1();
Fakat C++’da void‘in yazılması isteğimize bağlıdır. Sonuç olarak C++’da f1( )‘in prototipi genelde şu şekildedir: char f1();
C C++
C, 1969-1973 yılları arasında AT&T Bell Labs'de Dennis Ritchie tarafından geliştirilmiştir.
C ++, 1979'da Bjarne Stroustrup tarafından C ++ 'nın selefi "C with Classes" ile geliştirildi.
C, prosedürel (başka bir deyişle yapısal) bir programlama dilidir.
C++, prosedürel (yapısal) olmasının yanı sıra, aynı zamanda nesne tabanlı bir programlama dilidir.
C dilinde çözüm, bir dizi prosedür veya adımla gerçekleştirilir. Bu nedenle, C bir fonksiyon odaklı bir dildir.
C ++, tüm çözümü nesneler açısından modelleyebilir ve çözümü daha iyi organize eder. C ++, nesne tabanlı bir dildir.
C, orta seviyeli bir dildir.
C ++ yüksek seviyeli bir dildir.
C'de main () fonksiyonu diğer fonksiyonlardan çağrılabilir.
C ++'da main () fonksiyonu diğer fonksiyonlardan çağrılamaz. Programın yürütülmesi main() fonksiyonundan başlar.
C'de isim uzayı (namespace) desteği yoktur.
C++ isim uzaylarını destekler.
C'de kalıtım (inheritance) mümkün değildir.
C ++ nesneye yönelik bir dildir ve bu yüzden kalıtım mümkündür.
C'de, tüm değişkenlerin bir kapsamın (scope) başında bildirilmesi gerekir.
C ++, kapsamın herhangi bir yerindeki değişkenlerin bildirilmesine izin verir.
C'de fonksiyon yüklemesi (function overloading) mümkün değildir.
C ++'da fonksiyon yüklemesi (function overloading) mümkündür
C programları .c uzantılı dosyalara kaydedilir.
C++ programları .cpp uzantılı dosyalara kaydedilir.
C'de polimorfizm (polymorphism) desteklenmez.
C++'da polimorfizm desteklenir.