Programlama dillerinde tasarım yonunden eksiklikler olabilmektedir. Şu ana kadar 1500 civarında programlama dilinin varlığından soz ediliyorsa bunun en onemli nedeni dillerin daha cok spesifik amaclar icin tasarlanmasıdır. C++ dilinin ortaya cıkışını bu bağlamda ele alabiliriz. C++ dili C dilinden turemiştir. Yani C++ dili; C'deki eksiklikler giderilerek ve C' de olmayan bircok ek ozellik getirilerek ortaya cıkmıştır diyebiliriz.
C++' ın en başta gelen farklılığı ise Nesne Yonelimli (Object-Oriented) olmasıdır. Buna karşın C fonksiyonel bir dildir (procedural). Peki tam olarak nedir Nesnel Yonelimli Programlama? Kısaca değinecek olursak; C dilinde (veya fonksiyonel herhangi bir dilde) program yazarken programımızı fonksiyonlara parcalar ve tasarlardık. Yani programımızın temel parcası fonskyionlar idi. C++ da ise programlarımızın temel birimi nesnelerdir. Orneğin bir satranc oyununu simule eden programı yazdığımızı duşunelim. Programda bazı nesnelerin Satranc tahtası, Piyon, Vezir, vs olacagini duşunebiliriz. Bu şekilde program yazmak hepimizin farkedecegi gibi daha kolay ve en onemlisi de gerceğe daha uygundur. Zaten nesne yonelimli programlamanın ortaya cıkışında yatan ilham kaynaği da diyebileceğimiz en onemli unsur gercek dunyayı modelleyebilmektir.
Farklı bir ornekle konuyu acıklamaya calışalım. Mesela programımızda "otomobil" diye bir nesnemizin olduğunu duşunelim. Bu nesnenin direksiyon, fren, kapı gibi elemanları oldugu gibi gitmek, hızlanmak gibi ozellikleri de olmalıdır. Hatta bu alt elemanların da kendilerine ait elemanlari ve ozellikleri olduğunu ve otobomil nesnesinin de uyesi olduğu daha kompleks bir nesne olduğunu duşunebiliriz. Işte C++ bize boyle karmaşık yapıyı kolayca tasarlayabileceğimiz bir arac sunuyor. Bu yapıyı program icinde C de olmayan yeni bir anahtar sozcuk (keyword) olan class (sınıf) ile kuruyoruz. class yapılarının C deki struct veri yapısına benzediği kısmen doğrudur fakat artık class yapıları icinde fonksiyon tanımlayabiliyoruz.
Basit bir ornekle acıklayacak olursak; C de oluşturduğumuz iki tane farklı yapı duşunelim. X ve Y yapilari. X' i Y' ye kopyalamak icin " Y = X; " gibi bir ifade kullanamazdık. C++ ile kopyalamanın ne şekilde olacağını belirterek bunu doğal olarak yapabiliyoruz.
Bu noktada sorabilecegimiz en onemli soru şudur : Bu işlemi biz C dilinde de farklı bir yolla yapabilirdik, o halde neden C++? Şunu belirtelim ki C++ ile yazabildigimiz tum programları kesinlikle C diliyle de yazabiliriz. Fakat programımızın boyutu buyudukce, karmaşıklıgı arttıkca ve zamanın bizim icin cok onemli oldugunu dusunduğumuzde artık yazabilmekten ziyade hızli, kolay ve efektif bir şekilde program yazmanın gerekliliği ortaya cıkıyor ve bu noktada Nesne Yonelimli Programlamanın ihtiyacını hissediyoruz.
Aslında burada belirtilmesi gereken diger bir husus daha vardır. C ile de şuphesiz nesnel programlama yapabiliriz. Fakat bunu yapabilmek oldukca zordur. C++ ise Nesne yonelimli programlamaya imkan vermekten ote zaten bu paradigmaya gore tasarlanmıştır ve yapısındaki araclar sayesinde bunu kolaylaştırmıştır.
__________________
C ile C++ Arasındaki Farklar
Android & IOS Uygulama Geliştirme0 Mesaj
●28 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Android & IOS Uygulama Geliştirme
- C ile C++ Arasındaki Farklar