C++ ile Nesneye Yönelik
Programlama ve Mühendislik Uygulamaları Doç. Dr. Ömer Aydın, Prof. Dr. Hayati Mamur, Prof. Dr. Aybeyan Selim  - Kitap

C++ ile Nesneye Yönelik Programlama ve Mühendislik Uygulamaları

1. Baskı, 
Mayıs 2026
Kitabın Detayları
Dili:
Türkçe
Ebat:
16x24
Sayfa:
416
Barkod:
9786253818920
Kapak Türü:
Karton Kapaklı
Fiyatı:
740,00
24 saat içerisinde temin edilir.
Kitabın Açıklaması
C++ ile Nesneye Yönelik Programlama ve Mühendislik Uygulamaları, programlama dünyasının en güçlü dillerinden birini hem teorik derinliğiyle hem de uygulama sahasındaki karşılığıyla ele alan kapsamlı bir temel eserdir. Alanında uzman akademisyenler tarafından kaleme alınan bu kitap, mühendislik disiplinini yazılımın yapısal gücüyle birleştirmiştir.
Kitap, C++ programlama diline sıfırdan başlayanları güvenle ileri seviyeye taşıyor. Dev C++ ile ilk adımdan itibaren; değişkenler, kontrol yapıları, fonksiyonlar, diziler ve işaretçiler gibi temel konular bol örnekle pekiştiriliyor. Modern C++ standartlarına (C++11'den C++20'ye) da yer verilmesi, kitabı güncel ve sektörle uyumlu kılıyor.
İkinci aşamada, Nesneye Yönelik Programlamanın (NYP) detaylı olarak anlatılmıştır. Sınıflar, nesneler, kapsülleme, kalıtım, çok biçimlilik ve istisna yönetimi gibi kritik kavramlar, UML diyagramlarıyla desteklenerek adım adım açıklanıyor.
Kitabı benzerlerinden ayıran en güçlü özelliği ise mühendislik uygulamalarına verdiği ağırlık. Arduino ve STM gibi popüler platformlarda C++ ile NYP örnekleri, öğrencinin yalnızca kod yazmasını değil, gerçek dünya problemlerini nesne yönelimli düşünerek çözmesini sağlıyor.
Üniversitelerin mühendislik fakültelerinde ders kitabı olarak rahatlıkla okutulabilecek bu eser, 250'den fazla örnek ile aynı zamanda kendi başına C++ öğrenmek isteyenler için de kapsamlı bir rehber niteliğindedir.
Kitabın Konu Başlıkları
.
C++ Programlama Temelleri ve Kod Anatomisi
.
Kontrol Yapıları ve Fonksiyonel Programlama
.
Gelişmiş Veri Yapıları: Vektörler, Listeler ve Ağaçlar
.
Bellek Yönetimi ve İşaretçiler (Pointers)
.
Modern C++ Standartları (C++11 – C++20)
.
Nesne Yönelimli Programlama (NYP) Esasları
.
Kalıtım, Çok Biçimlilik ve Veri Soyutlama
.
Birleşik Modelleme Dili (UML) ile Yazılım Tasarımı
.
Arduino ve STM ile Gömülü Sistem Uygulamaları
.
Mühendislik Odaklı NYP Uygulama Örnekleri
Kitabın İçindekileri
İçindekiler
Önsöz 
5
Yazarlar 
7
C++ TEMELLERİ
BÖLÜM 1: DEV C++ İLE BAŞLARKEN 
19
1.1 Dev C++'a Giriş 
19
1.2 Kurulum 
20
1.3 Dev C++ Arayüzü 
24
1.4 İlk Projenizi Oluşturma 
25
1.5 Derleme ve Çalıştırma 
26
1.6 Dev C++'da Hata Ayıklama 
27
BÖLÜM 2: BİR C++ PROGRAMININ ANATOMİSİ 
29
2.1 Başlık Dosyaları 
29
2.1.1 Dahili Başlık Dosyaları 
29
2.1.2 Kullanıcı Tarafından Tanımlanan Başlık Dosyaları 
31
2.1.2.1. .h Uzantılı Kullanıcı Tanımlı Başlık Dosyaları 
31
2.1.2.2. .hpp Uzantılı Kullanıcı Tanımlı Başlık Dosyaları 
34
2.1.2.3. .h ve .hpp Karşılaştırma 
36
2.1.3 Koşullu Derleme 
36
2.2 Main (Ana) Fonksiyon 
37
2.2.1 Main Fonksiyonun Temel Yapısı 
37
2.2.2 Basit Main Foknsiyon Yapısı 
38
2.2.3 Komut Satırı Argümanları 
38
2.2.4 Main Fonskiyonun Dönüş Değeri 
38
2.2.5 Hata Yakalama 
39
2.3 İfadeler ve Deyimler 
39
2.4 Yorumlar/Açıklamalar 
40
2.4.1 Tek Satır Yorum/Açıklama 
40
2.4.2 Çok Satırlı Yorumlar/Açıklamalar 
41
2.4.3 Belge Yorumları/Açıklamaları 
42
BÖLÜM 3: C++'DA DEĞİŞKENLERİ VE SABİTLERİ ANLAMA 
43
3.1 Veri Türleri 
43
3.2 Temel Veri Türleri 
43
3.2.1 Tamsayı Türleri 
43
3.2.2 Kayan Nokta Türleri 
44
3.2.3 Karakter Türleri 
44
3.2.4 Boole Türü 
44
3.3 Değişken Bildirimi ve Başlatma 
45
3.3.1 Değişken Beyanı 
45
3.3.2 İlk Değer Atama/İlklendirme 
45
3.4 Sabitler 
46
3.5 Gelişmiş Kavramlar 
47
3.5.1 extern Anahtar Kelimesi 
47
3.5.2 Statik Anahtar Kelimesi 
47
3.5.3 İşaretçiler 
48
3.5.4 Diziler 
48
3.5.5 Yapılar 
48
3.5.6 Unions 
49
3.5.7 Enums 
50
3.6 Sayı Tabanları 
50
3.6.1 İkili (Binary) Sistem (Taban–2) 
51
3.6.2 Sekizli (Octal) Sistem (Taban–8) 
51
3.6.3 Onluk (Decimal) Sistem (Base–10) 
52
3.6.4 Onalatılık (Hexadecimal) Sistem (Base–16) 
53
3.6.5 İkilik Tabandan Onaltılık Tabana Dönüşüm 
53
3.6.6 Onaltılık tabandan Onluk tabana dönüşüm: 
54
BÖLÜM 4: G/Ç (I/O) İŞLEMLERİ VE TEMEL BİLGİLER 
57
4.1 cout ile Çıktı Üretme 
58
4.2 cin ile Girdi 
58
4.3 cerr: Standart Hata Akışı 
59
4.4 clog: Standart Günlük (Log) Akışı 
59
4.5 setw: Alan Genişliğini Ayarla 
59
4.6 setprecision: Ondalık Hassasiyetini Ayarla 
59
4.7 setfill: Doldurma Karakteri Ayarlama 
60
4.8 left, right, internal: Hizalama 
60
4.9 hex, oct, dec, bitset: Çıktı Sayı Tabanı 
61
4.10 Diğer Veri Türlerinin Girdi ve Çıktı İşlemleri 
61
4.11 std Ad Alanını(namespace) Kullanma 
62
4.12 Dosya G/Ç İşlemleri 
63
4.12.1 Dosyaları Açma ve Kapatma 
64
4.12.2 Bir Dosyaya Yazma 
64
4.12.3 Dosyadan Okuma 
65
4.12.4 Dosyaya Ekleme Yapma 
66
4.12.5 Hata İşleme 
68
4.12.6 İkili (Binary) Dosya G/Ç 
71
4.12.7 Rastgele Erişim Dosya G/Ç İşlemleri 
72
BÖLÜM 5: KONTROL YAPILARI 
75
5.1 Koşullu İfadeler 
75
5.1.1 if İfadesi 
75
5.1.2 else if İfadesi 
76
5.1.3 else İfadesi 
78
5.1.4 İç İçe if İfadesi 
78
5.2 Döngü (loop) Yapıları 
80
5.2.1 for Dögüsü 
80
5.2.2 while Döngüsü 
80
5.2.3 do–while Döngüsü 
81
5.2.4 Sonsuz (Infinite) Döngüler 
81
5.2.5 Ölü (Dead) Döngüler 
82
5.2.6 Döngü Kontrol İfadeleri 
83
5.2.6.1 break İfadesi 
83
5.2.6.2 continue İfadesi 
84
5.3 switch–case İfadesi 
85
5.3.1 Temel Sözdizimi 
85
5.3.2 Düşüş (Fall–Through) 
86
BÖLÜM 6: FONKSİYONLAR 
89
6.1 Fonksiyonların Temelleri 
89
6.2 Fonksiyon Bildirim ve Tanımları 
89
6.2.1 Fonksiyon Bildirimi 
90
6.2.2 Fonksiyon Tanımı 
91
6.2.3 Ayrı Derleme 
92
6.3 Main veya Diğer Fonksiyonların İçinde Fonksiyon Kullanımı 
94
6.4 Fonksiyonlarda Değer ile Çağrı 
96
6.5 Fonksiyonlarda Referans ile Çağrı 
97
6.6 Özyinelemeli (Kendini Çağıran) Fonksiyonlar 
99
6.7 Küresel Değişkenler ve Fonksiyonlar 
102
6.8 Yerel Değişkenler ve Fonksiyonlar 
104
6.9 Statik Değişkenler ve Fonksiyonlar 
105
BÖLÜM 7: DİZİLER 
109
7.1 Bildirim, Tanımlama ve İlk Değer Atama 
109
7.1.1 Dizilerin Bildirimi ve Kullanımı 
109
7.1.2 Dizilerin Başlatılması (İlklendirilmesi) 
109
7.2 Tek Boyutlu Dizilerin Kullanımı 
110
7.2.1 Öğelere Erişim 
110
7.2.2 Öğeleri Değiştirme 
111
7.2.3 Öğeler Arasında Döngü 
112
7.3 Çok Boyutlu Dizi ve Kullanımı 
114
7.4 Dinamik Diziler ve Kullanımı 
116
7.5 Dizi Sınır Kontrolü (Array Bounds Checking) 
118
7.6 Diziler ve Fonksiyonlar 
119
BÖLÜM 8: BİRLİK (UNION), NUMARALANDIRMA (ENUM) VE
YAPI (STRUCTURE) 
123
8.1 Birlik (Union) 
123
8.1.1 Birliklerin Bildirimi ve Kullanımı 
123
8.2 Enumlar (Enumerations) 
125
8.2.1 Enumların Bildirimi ve Kullanımı 
126
8.3 Yapılar 
127
8.3.1 Yapıların Bildirimi ve Kullanımı 
128
8.3.2 Typedef Kavramı ve Yapılarla Kullanımı 
130
8.3.3 Typedef Alternatifi Olarak Using Kullanımı 
132
8.4 Diğer Konular ve Başlıklar 
133
8.4.1 İç İçe Yapılar ve Birlikler 
133
8.4.2 Birliklerin (Union) Yapılar ile Birlikte Kullanımı 
135
8.5 İşaretçiler (Pointers) ve Yapılar 
138
8.5.1 Yapılara İşaretçiler (Pointers to Structures) 
138
8.6 Yapıların Fonksiyonlarla Kullanımı 
141
8.6.1 Yapıları Fonksiyonlara Gönderme 
141
8.7 Yapılar ile Dizilerin Birlikte Kullanımı 
144
8.7.1 Tek Boyutlu Dizilere Olarak Yapılar 
144
8.7.2 Çok Boyutlu Diziler ile Yapılar 
145
BÖLÜM 9: VEKTÖR, KUYRUK, LİSTELER, KÜMELER, EŞLEMELER VE AĞAÇLAR 
149
9.1. Dinamik Diziler: Vektörler (std::vector) 
149
9.2. Kuyruk Yapıları (std::queue ve std::priority_queue) 
152
9.3. Bağlı Listeler (std::list) 
156
9.4. Kümeler (std::set) 
159
9.5. Eşlemeler (std::map) 
162
9.6. Ağaç Yapıları (Binary Trees) 
166
BÖLÜM 10: İŞARETÇİLER 
171
10.1 İşaretçi Nedir? 
171
10.2 İşaretçiler Nasıl Kullanılır? 
171
10.2.1 İşaretçi Oluşturma 
171
10.2.2 İşaretçinin Gösterdiği Değere Erişim (Dereference) 
171
10.3 İşaretçilerin Değiştirilmesi 
172
10.4 Bellek Yönetimi 
172
10.4.1 Adresleme ve İşaretçiler 
173
10.4.2 Dinamik Bellek Ayırma ve İşaretçiler 
173
10.5 İşaretçiler ve Fonksiyonlar 
174
10.6 İşaretçiler ve Diziler 
175
10.7 İşaretçiler ve Yapılar 
176
10.8 İşaretçiler ve Bağlantılı Listeler 
177
10.9 İşaretçiye İşaretçiler 
178
10.10 Fonksiyonlara İşaretçiler 
179
BÖLÜM 11: MODERN C++ STANDARTLARI (C++11 – C++20) 
181
11.1 C++ Standartlarının Evrimi 
181
11.2 C++11 Yenilikleri 
181
11.2.1 auto Anahtar Sözcüğü 
181
11.2.2 nullptr Kavramı 
182
11.2.3 Aralık tabanlı for Döngüsü 
182
11.2.4 Lambda İfadeleri 
182
11.2.5 Akıllı İşaretçiler 
182
11.3 C++14 Yenilikleri 
183
11.3.1 std::make_unique 
183
11.3.2 Lambda İyileştirmeleri 
183
11.4 C++17 Yenilikleri 
183
11.4.1 if constexpr 
183
11.4.2 Structured Bindings 
184
11.4.3 std::optional 
184
11.4.4 std::variant 
184
11.5 C++20 Yenilikleri 
184
11.5.1 std::format 
184
11.5.2 std::span 
185
11.5.3 Concepts’e Kısa Giriş 
185
11.6 Modern C++ ile Güvenli ve Temiz Kod Yazımı 
185
11.7 Özet ve En İyi Uygulamalar 
186
NESNEYE YÖNELİK PROGRAMLAMA
BÖLÜM 12: NESNEYE YÖNELİK PROGRAMLAMA KAVRAMLARI 
187
12.1 Sınıf 
187
12.2 Nesneler 
187
12.3 Veri Soyutlama 
187
12.4 Kapsülleme 
188
12.5 Kalıtım 
188
12.6 Çok Biçimlilik 
188
12.7 Dinamik Bağlama 
188
12.8 Mesaj Aktarımı 
188
12.9 İstisnalar 
188
BÖLÜM 13: SINIFA GENEL BAKIŞ 
191
13.1 Bir Sınıfın Oluşturulması 
191
13.2 Erişim Belirleyiciler: Public, Private, Protected 
194
13.3 Üye Fonksiyonlar 
198
13.4 Varsayılan Yapıcı 
200
13.5 Yapıcı Fonksiyonlar 
201
13.6 Yıkıcı Fonksiyon 
202
13.7 Kopya Yapıcı 
203
13.7.1 Yüzeysel (Shallow) ve Derin (Deep) Kopyalama 
205
13.8 Operatör Aşırı Yükleme 
207
13.8.1 Atama Operatörü (=) 
207
13.8.2 Aritmetik Operatörler (+, –, , /) 
207
13.8.3 Artırma ve Azaltma Operatörleri (++, ––) 
208
13.8.4 Karşılaştırma Operatörleri (==, !=, <, >, <=, >=) 
209
13.8.5 Parantez Operatörü () 
210
BÖLÜM 14: NESNELER 
211
14.1 Nesne Oluşturma 
211
14.2 Nesne Dizileri 
214
14.3 Nesnelerle İşaretçilerin Kullanımı 
216
14.4 Kopya Yapıcı ve Nesne Kopyalama 
219
14.5 Nesnelerin Fonksiyonlara Gönderilmesi 
223
BÖLÜM 15: NESNELERİN BAŞKA BİR SINIFIN ÜYESİ OLARAK KULLANILMASI 
229
15.1 Nesne Bileşimi Kavramı 
229
15.2 Nesneler Arasındaki İlişki Türleri 
230
15.3 Üye Nesnelerin Başlatılması 
230
15.4 Üye Nesnelerin Yok Edilmesi 
231
15.5 Dinamik Bellek Kullanan Sınıflarda Üye Nesneler 
232
15.6 Nesneleri Üye Olarak Kullanmanın Avantajları 
233
15.7 Uygulamalı Örnek. Öğrenci ve Adres Sınıfları 
233
15.8 Hatırlanması Gereken Temel Noktalar 
234
BÖLÜM 16: VERİ SOYUTLAMA (DATA ABSTRACTION) 
235
16.1 Veri Soyutlamaya Giriş 
235
16.2 Veri Soyutlamanın Temel Taşı: Kapsülleme (Encapsulation) 
235
16.2.1 Kapsülleme İstisnaları 
236
16.2.1.1 Arkadaş Sınıflar 
236
16.2.1.2 Arkadaş Fonksiyonlar 
238
16.3 Soyut Sınıflar ve Saf Sanal Fonksiyonlar 
241
16.4 Veri Soyutlamasının Faydaları 
242
16.4.1 Kodun Kolay Bakım Yapılabilir Olması 
242
16.4.2 Kodun Yeniden Kullanılabilirliği 
242
16.4.3 Azaltılmış Karmaşıklık 
243
BÖLÜM 17: KAPSÜLLEME 
245
17.1 Kapsüllemeye Giriş 
245
17.2 Kapsüllemenin Temel Özelliği 
245
17.3 Özel Üyelerle Bilgi Gizleme 
247
17.4 Kapsüllemenin Faydaları 
249
17.4.1 Veri Koruma 
249
17.4.2 Daha İyi Modülerlik 
249
17.4.3 Kod Esnekliği 
249
17.5 Uygulamada Kapsülleme 
250
BÖLÜM 18: KALITIM 
251
18.1 Kalıtım’a Giriş 
251
18.2 Kalıtımın Temelleri 
251
18.3 Kalıtım Türleri 
256
18.3.1 Tekli Kalıtım (Single Inheritance) 
256
18.3.2 Çoklu Kalıtım 
266
18.3.3 Çok Düzeyli Kalıtım 
274
18.3.4 Hiyerarşik Kalıtım 
278
18.3.5 Hibrit Kalıtım 
283
18.4 Kalıtımda Erişim Kontrolü 
287
18.4.1 Public Kalıtım 
288
18.4.2 Protected Kalıtım 
289
18.4.3 Private Kalıtım 
291
18.4.4 Çok Düzeyli Kalıtımda Yetkilendirme 
292
18.5 Ezme 
294
18.5.1 Fonksiyon Ezme 
294
18.6 Sanal Fonksiyonlar ve Soyut Sınıflar 
296
18.6.1 Sanal Fonksiyonlar 
296
18.6.2 Soyut Sınıflar 
297
BÖLÜM 19: ÇOK BİÇİMLİLİK 
301
19.1 Fonksiyon Aşırı Yükleme 
301
19.2 Operatör Aşırı Yükleme 
301
19.3 Çalışma Zamanı Çok Biçimlilik 
302
19.4 Soyut Sınıflar 
303
19.5 Arayüzler 
304
19.6 Dinamik Bağlama 
304
19.7 Çok Biçimli Konteynırlar 
305
BÖLÜM 20: MESAJ GEÇİŞİ 
307
20.1 Yöntem Çağrısı 
307
20.2 Olay İşleme 
307
20.3 Gözlemci Tasarım Deseni 
308
20.4 Ağ Üzerinde Mesaj Geçişi 
309
20.5 Uzak Prosedür Çağrısı (RPC) 
310
BÖLÜM 21: İSTİSNALAR 
313
21.1 İstisna İşlemenin Temelleri 
313
21.2 Standart İstisnalar 
313
21.3 Özel İstisna Sınıfları 
314
21.4 İstisna Belirtimleri (Kullanımdan Kaldırıldı) 
315
21.5 İç İçe İstisnalar 
315
21.6 İstisna Güvenliği 
316
21.7 RAII (Resource Acquisition Is Initialization) 
317
BÖLÜM 22: BİRLEŞİK MODELLEME DİLİ (UML) 
321
22.1 Sınıf (Class) Diyagramları 
321
22.2 Nesne (Object) Diyagramları 
323
22.3 Durum (State) Diyagramları 
325
22.4 Ardıl Etkileşim (Sequence) Diyagramları 
326
22.5 Etkinlik (Activity) Diyagramları 
327
22.6 Kullanım Durumu (Use Case) Diyagramları 
329
22.7 İş Birliği (Collaboration)Diyagramları 
330
22.8 Bileşen (Component) Diyagramları 
331
22.9 Dağıtım (Deployment) Diyagramları 
332
22.10 Paket (Package) Diyagramları 
333
NYP İLE MÜHENDİSLİK UYGULAMALARI
BÖLÜM 23: ARDUINO İLE NYP ÖRNEKLERİ 
337
23.1 Arduino Programlamada NYP Neden Kullanılır? 
337
BÖLÜM 24: STM İLE C++ VE NYP ÖRNEKLERİ 
363
BÖLÜM 25: C++ VE NYP İLE UYGULAMA ÖRNEKLERİ 
389
25.1 Çok İstemcili Mesajlaşma Sunucusu Uygulaması 
389
25.2 Dosya Transfer Uygulaması 
395
25.3 Elektronik Posta Gönderim Uygulaması (SMTP) 
401
25.4 Banka Hesap Yönetim Uygulaması 
405
25.5 Stok Takip Uygulaması 
408
Kavram Dizini 
413