Özet
← Ünite 1

Ünite 1: Chapter 18: C++ As a Better C; Introducing Object Technology — Konu Anlatımı

Ünitenin tamamını tek sayfada görPremium

1C++'a Giriş ve Nesne Yönelimli Programlama

C++, B. Stroustrup tarafından geliştirilmiş olup başlangıçta 'C with classes' (sınıflarla C) olarak adlandırılmıştır. C dilinin üzerine inşa edilen bu dil, C'nin tüm özelliklerini barındırmakla kalmaz, aynı zamanda nesne yönelimli programlama (OOP) yeteneklerini de sisteme dahil eder. Bu geçişin temel amacı, yazılım geliştirme sürecinde verimliliği, kod kalitesini ve yazılımın yeniden kullanılabilirliğini artırmaktır.

C++ ile gelen en önemli kavramlardan biri nesne yönelimli programlamadır. Bu yaklaşım; sınıflar, kapsülleme, operatör aşırı yükleme, kalıtım ve çok biçimlilik gibi mekanizmaları kullanarak karmaşık sistemlerin daha modüler ve yönetilebilir bir şekilde tasarlanmasını sağlar. Nesne yönelimli yapı, veriyi ve bu veri üzerinde işlem yapan fonksiyonları tek bir çatı altında birleştirir.

Bir diğer devrimsel özellik ise genel (generic) programlamadır. Fonksiyon şablonları ve sınıf şablonları sayesinde, aynı mantıksal işlemler farklı veri tipleri üzerinde tekrar tekrar yazılmadan kullanılabilir. Bu, kod tekrarını minimize ederken hata payını da düşürür. C++ kaynak dosyaları genellikle .cpp, .cxx veya .C uzantıları ile kaydedilir.

2Temel Giriş/Çıkış İşlemleri ve Program Yapısı

C++ programlarında giriş ve çıkış işlemleri için 'iostream' kütüphanesinin dahil edilmesi zorunludur. Programın temel yapısında tüm fonksiyonların bir dönüş tipine sahip olması beklenir. C'den farklı olarak, değişken bildirimleri programın herhangi bir yerinde yapılabilir; ancak bir değişkenin kullanılmadan önce tanımlanması kuralı hala geçerliliğini korur.

Kullanıcıdan veri almak için 'cin' nesnesi ve '>>' (akış çıkarma) operatörü kullanılır. 'cin >> number1' ifadesi, klavyeden girilen bir tam sayıyı alır ve 'number1' değişkenine atar. Bu işlem sırasında sistem, girilen veriyi değişkenin veri tipine uygun şekilde dönüştürür.

Ekrana çıktı vermek için 'cout' nesnesi ve '<<' (akış ekleme) operatörü kullanılır. 'endl' ifadesi ise hem yeni bir satıra geçilmesini sağlar hem de çıktı tamponunu (buffer) temizleyerek verinin hemen görüntülenmesini garanti eder. Bu operatörler, farklı veri tiplerini otomatik olarak tanıyarak uygun şekilde ekrana yazdırabilir.

3Inline Fonksiyonlar ve Referanslar

Inline fonksiyonlar, fonksiyon çağırma maliyetini (overhead) azaltmak için tasarlanmıştır. Bir fonksiyonun başına 'inline' anahtar kelimesi eklendiğinde, derleyici bu fonksiyonun kodunu çağrıldığı yere kopyalamaya çalışır. Bu, fonksiyonun her seferinde yığına (stack) atılması yerine doğrudan çalıştırılmasını sağlar, ancak derleyici bu isteği görmezden gelme hakkına da sahiptir.

Referanslar, bir değişken için takma ad (alias) oluşturur. '&' operatörü ile tanımlanan referanslar, bellekteki orijinal değişkeni temsil eder. Örneğin, 'int &aref = a;' ifadesiyle 'aref', 'a' değişkeninin bir yansıması olur. Referans üzerinde yapılan her değişiklik, doğrudan orijinal değişken üzerinde gerçekleşir.

Referans parametreleri, fonksiyonlara 'call by reference' (referans ile çağırma) mantığını simüle etmek için kullanılır. Referanslar, tanımlandıkları anda mutlaka başlatılmalıdır (initialize edilmelidir). Bu özellik, özellikle büyük veri yapılarının fonksiyonlara kopyalanmadan aktarılmasında büyük performans avantajı sağlar.

4Parametreler, Kapsam ve Şablonlar

C++'ta boş parametre listeleri 'void' anahtar kelimesiyle veya hiçbir şey yazılmadan belirtilebilir. Varsayılan argümanlar (default arguments) ise fonksiyon çağrısında bir değer belirtilmediğinde kullanılan ön tanımlı değerlerdir. Bu argümanlar mutlaka parametre listesinin en sağında yer almalıdır.

Unary scope resolution operator (::), yerel kapsamda aynı isimde bir değişken olsa bile global değişkene erişmeyi sağlar. Fonksiyon aşırı yükleme (overloading) ise aynı isme sahip ancak farklı parametre listelerine sahip fonksiyonların tanımlanmasına izin verir. Derleyici, argümanların sayısına, tipine ve sırasına bakarak doğru fonksiyonu seçer.

Fonksiyon şablonları, tek bir kod bloğunun farklı veri tipleriyle çalışmasını sağlar. 'template' anahtar kelimesiyle başlayan bu yapı, aynı mantıksal işlemleri farklı tipler için tekrar yazma zorunluluğunu ortadan kaldırır. Bu, C++'ın en güçlü soyutlama araçlarından biridir.

SponsorluReklam Alanı · 300 × 250