C++ Programlama Dili Yapısal Programlama – Nesnelerle Programlama Jenerik Programlama – Grafik Programlamaya Giriş Prof. Dr. Mustafa Dikici  - Kitap

C++ Programlama Dili

Yapısal Programlama – Nesnelerle Programlama Jenerik Programlama – Grafik Programlamaya Giriş

4. Baskı, 
Şubat 2022
Kitabın Detayları
Dili:
Türkçe
Ebat:
16x24
Sayfa:
704
Barkod:
9789750275104
Kapak Türü:
Karton Kapaklı
Fiyatı:
740,00
24 saat içerisinde temin edilir.
Kitabın Açıklaması
Gözden geçirilmiş ve genişletilmiş 4. baskısını yapan kitap, ilk üç baskının ardından yeniden ele alınmış ve yazara gelen istekler üzerine Dev-C++ ve Grafik Programlama bölümleri de eklenmiştir.
Yıllarca bilgisayar konusunda ders verdikten sonra, bu konudaki deneyim ve tecrübelerini kaleme alan yazar yeni başlayanların ve öğrencilerin kolaylıkla anlayacağı ve yararlanacağı bir kitap hazırlamıştır.
Kitap, Geleneksel Prosedürsel Programlama (Traditional Procedural Programming). Yapısal Programlama (Structural Programming), Nesnelerle Programlama (Object–Oriented Programming) ve Jenerik Programlama yöntemleri kullanılarak, konunun özümsenerek öğrenilmesine olanak sağlayacak şekilde ve bol örnekli olarak hazırlanmıştır.
Kitabın Konu Başlıkları
.
C++ Programlama Dili
.
Basit Veri Tipleri
.
Seçme ve Döngü
.
Yapısal Veri Tipleri
.
Fonksiyonlar
.
Sınıf, Nesne, Kalıtım ve Gösterici
.
Akış ve Dosya
.
Şablonlar
.
Standart Şablon Kitaplığı
.
Algoritma Tabloları
.
Dev–C++ ve Grafik Programlamaya Giriş
Yorumlar
Kitabın İçindekileri
Önsöz 
5
Üçüncü Baskı İçin Birkaç Söz 
7
Dördüncü Baskıya Önsöz 
9
Birinci Bölüm:
GİRİŞ
1. GİRİŞ 
31
1.1. Bilgisayar Kullanmanın Önemi 
31
1.2. Başlarken 
32
1.3. Programlama Dilleri 
32
1.3.1. İlk Programlama Dilleri 
32
1.3.2. İkinci Nesil Diller 
32
1.3.3. Üçüncü Nesil Diller 
33
1.3.3.1. Genel Amaçlı Yüksek Düzeyli Diller 
33
1.3.3.2. Nesnelerle Programlama Yapan Yüksek Düzeyli Diller 
33
1.3.4. Dördüncü Nesil Diller 
33
1.3.5. Zamanımıza Kadar C++ 
34
1.4. Programlama Dili Seçimi 
34
1.5. Derleyici 
35
1.5.1. Derleyici, Birleştirici ve Hata Bulucu 
35
1.5.2. Ücret Ödemeden İndirilebilen Derleyicilerin Listesi 
36
1.5.3. Ücret Ödenerek İndirilebilen Derleyicilerin Listesi 
36
1.5.4. Derleyici ve Donanım 
37
1.6. Ücretsiz İndirilen Dev–C++ Derleyicileri 
37
1.6.1. Dev–C++ 5.11 Derleyicisinin İndirilmesi ve Açılması 
38
1.6.2. Dev–C++ 5.11 Derleyicisinde Proje Oluşturma 
39
1.6.3. Dev–C++ 5.11 Derleyicisinde Kaynak Kodu Dosyası Oluşturma ve Bu Dosyayı Kaydetme 
42
1.6.4. Kaynak Kodu Dosyasını Projeye Ekleme 
43
1.6.5. Var Olan Bir Dosyayı Açma 
43
1.6.6. Kaynak Kodu Dosyasına Program Yazma ve Bu Programı Çalıştırma 
43
1.7. Dev–C++ Derleyicisinden Seçilebilecek Modlar 
45
1.7.1. Modların Seçilmesi 
45
1.7.2. Modların İncelenmesi 
46
1.7.2.1. "Basic → Windows Application" Seçimi 
46
1.7.2.2. Multimedia → OpenGL Seçimi 
48
1.7.2.3. Win32 → Animation Example 
49
1.7.2.4. Özet 
51
1.8. Dev–C++ Derleyicisi İle Daha Neler Yapılabilir? 
51
1.9. Genel Olarak Dev–C++ Derleyicisi ve Grafik Ekran Modu’nun Kullanılması 
51
İkinci Bölüm:
C++ PROGRAMLAMA DİLİ
2. C++ PROGRAMLAMA DİLİ 
53
2.1. C++ Programı 
53
2.2. C++ Programlama Dili'nin Temel Yapısı 
54
2.2.1. main() Fonksiyonu 
54
2.2.2. C++ Programlarında Türkçe Karakterleri Kullanma 
57
2.2.3. iostream Başlık Dosyası 
58
2.2.4. İsim Uzayı: namespace 
59
2.2.5. Fonksiyonlar 
61
2.2.6. Açıklamalar 
62
2.2.7. Program Yazma Şekli 
64
2.2.8. İfadeler 
64
2.2.8.1. Basit İfadeler 
64
2.2.8.2. Basit Olmayan İfadeler 
64
2.3. C++ Programlarında Kullanılan Nicelikler 
65
2.3.1. Anahtar Kelimeler 
66
2.3.2. Belirleyiciler/İsimler 
66
2.3.3. Sabitler 
67
2.3.3.1. Tam Sayı Sabitler 
67
2.3.3.2. Karakter Sabitler 
67
2.3.3.3. Ondalık Sayı Sabitler 
68
2.3.3.4. Numaralama Sabitleri 
68
2.3.4. String–Karakter Dizisi 
69
2.3.5. İşlemciler 
69
2.3.6. Ayırıcılar 
69
2.4. Kullanılan Niceliklere İsim Verme 
69
2.5. Temel Veri Tipleri 
71
2.5.1. Tam Sayı Veri Tipleri 
71
2.5.2. İşaretsiz Tam Sayı Veri Tipleri 
73
2.5.3. Ondalık Sayı Veri Tipleri 
74
2.5.4. Karakter Veri Tipi ve Küçük Tam Sayılar 
75
2.4.5. bool Veri Tipi 
80
2.5.6. Alias – Veri Tipi Adı – Takma Ad – Lakap 
81
2.5.7. Tam Sayıların Kullanılması 
82
2.5.8. Veri Tiplerinin "byte" Cinsinden Büyüklükleri 
83
2.5.9. Sayısal İşlemlerde Sınır Kavramı 
84
2.6. Değişkenler ve Sabitler 
87
2.6.1. Değişkenler 
87
2.6.1.1. Bir Deyimin l–değerli Olması 
87
2.6.1.2. Bir Deyimin r–değerli Olması 
88
2.6.2. Değişken Deklerasyonları ve Tanımları 
88
2.6.3. Sabitler 
93
2.7. Formatlı Yazdırma 
94
2.8. İkili Sayı Sistemi 
97
2.8.1. Tam Sayılar 
97
2.8.2. Ondalık Sayılar 
98
2.8.3. Ondalık Sayıların Gösterilmesi 
99
2.8.3.1. Ondalık Sayılarda Duyarlık (precision) 
99
2.8.3.2. Duyarlık Problemi Nasıl Yok Edilir? 
101
2.8.3.3. Ondalık Sayıları Yuvarlama Problemi 
101
2.9. Veri Tipi Dönüşümü 
103
2.9.1. Veri Tipi Dönüşümü Çeşitleri 
104
2.9.1.1. Derleyici Tarafından Kendiliğinden Gerçekleştirilen Veri Tipi Dönüşümü 
104
2.9.1.2. Tip Atamaları 
105
2.9.2. Tip Dönüşümleri Sırasında Karşılaşılan Önemli Problemler 
109
2.9.2.1. Birinci Durum 
109
2.9.2.2. İkinci Durum 
109
2.9.2.3. Üçüncü Durum 
109
2.9.2.4. Dördüncü Durum 
109
2.9.2.5. Beşinci Durum 
110
2.10. Aritmetik İşlemciler 
112
2.10.1. Basit Aritmetik İşlemciler 
112
2.10.1.1. Bölme İşlemcisi ve Tam Sayı Bölme işlemcisi 
112
2.10.1.2. Kalan İşlemcisi 
113
2.10.1.3. Öncelik Sırası 
114
2.10.2. Aritmetik Atama İşlemcileri 
115
2.10.3. Artırma İşlemcisi 
116
2.10.4. Ön Ek (prefix) ve Son Ek (postfix) Gösterimi 
117
2.10.5. Eksiltme İşlemcisi 
118
2.10.6. Aritmetik İşlemlerde Öncelik Sırası 
119
2.11. Hazır Fonksiyonlar 
119
2.11.1. Başlık Dosyaları 
120
2.12. Sorular ve Alıştırmalar 
121
Üçüncü Bölüm:
SEÇME VE TEKRAR
3. SEÇME VE TEKRAR 
123
3.1. Karşılaştırma 
123
3.1.1. Karşılaştırma İşlemcileri 
123
3.1.2. İşlemcilerin Öncelik Sıraları 
125
3.2. Seçme 
125
3.2.1. if İfadesi 
125
3.2.1.1. Basit if İfadesi 
125
3.2.1.2. if … else … ; İfadesi 
128
3.2.1.3. Şartlı İşlemci 
132
3.2.2. switch İfadesi 
134
3.3. Tekrarlama 
136
3.3.1. for İfadesi 
136
3.3.1.1. for İfadesinin Başlığı 
137
3.3.1.2. for İfadesinin Gövdesi 
138
3.3.1.3. Bloklar, Değişkenlerin Etki Alanları ve Değişkenlere Ulaşabilme 
139
3.3.1.4. Değişik for Yapıları 
140
3.3.1.5. for İfadelerinin İçinde Tanımlanan Değişkenler 
141
3.3.1.6. Birden Çok İlk Değer Atama ve Sınama Deyimi 
141
3.3.1.7. for İfadesinde Adım Aralığını Değiştirme 
141
3.3.1.8. for İfadesinde string 
142
3.3.1.9. For İfadesinin Kullanıldığı Önemli Bir Örnek 
142
3.3.2. while İfadesi 
143
3.3.3. do … while İfadesi 
145
3.4. Mantık İşlemcileri 
147
3.4.1. && (and) Ve İşlemcisi 
148
3.4.2. ¦¦ (or) Veya İşlemcisi 
149
3.4.3. ! (Değil) İşlemcisi 
151
3.5. Bazı İşlemcilerin Öncelik Sıraları 
151
3.6. Diğer Kontrol İfadeleri 
152
3.6.1. break; İfadesi 
152
3.6.2. continue; İfadesi 
152
3.6.3. goto İfadesi 
153
3.7. Sorular ve Alıştırmalar 
154
Dördüncü Bölüm:
DİZİ VERİ TİPİ
4. DİZİ VERİ TİPİ 
157
4.1. Veri Tipleri 
157
4.1.1. Basit Veri Tipleri 
157
4.1.2. Basit Olmayan Veri Tipleri 
157
4.2. Bir Boyutlu Dizi 
157
4.2.1. Bir Boyutlu Dizi Deklerasyonu 
157
4.2.2. Dizi Elemanlarına Değer Atama 
158
4.2.3. Dizinin Elemanlarını Kullanma 
159
4.2.4. Dizinin Elemanlarına İlk Değerleri Atama 
161
4.2.5. Dizilere Başlangıç Değeri Verme Kuralları 
161
4.2.6. Bir Diziyi En Büyük Sayıda Karakter İle Doldurma 
162
4.2.7. Dizileri Birbirine Ekleme 
163
4.3. İki Boyutlu Dizi 
164
4.3.1. İki Boyutlu Dizi Deklerasyonu 
164
4.3.1.1. İki Boyutlu Bir Diziyi Bir Fonksiyona Argüman Olarak Gönderme 
167
4.3.1.2. Değişik Dizi Örnekleri 
171
4.4. Diziler ve Dinamik Bellek Kullanımı 
176
4.4.1. Diziyi Belleğe Dinamik Olarak Yerleştirme 
176
4.4.2. Dinamik Olarak Belleğe Yerleştirilen Diziye İlk Değerleri Verme 
176
4.4.3. Diziyi Bellekten Silme 
177
4.5. Sorular ve Alıştırmalar 
177
Beşinci Bölüm:
STRING ve KARAKTER VERİ TİPLİ DİZİ
5. string ve Veri TİPLİ DİZİLER 
179
5.1. string 
179
5.2. Kopyalama 
182
5.3. İki Boyutlu Karakter Dizisi 
185
5.5. Başka Örnekler 
187
5.6. Sorular ve Alıştırmalar 
187
Altıncı Bölüm:
YAPI VE NUMARALAMA VERİ TİPLERİ
6. YAPI VE NUMARALAMA VERİ TİPLERİ 
189
6.1. Yapı Veri Tipi 
189
6.1.1. Yapı Veri Tipi Tanımı 
190
6.1.2. Yapı Veri Tipli Değişken Tanımlama 
191
6.1.3. Yapının Elemanlarına Erişme 
191
6.1.4. Yapı Veri Tipinin Diğer Özellikleri 
192
6.1.4.1. Yapı Üyelerine İlk Değerlerin Atanması 
192
6.1.4.2. Atama İfadelerinde Yapı Veri Tipli Değişkenler 
193
6.1.5. Yapı İçinde Yapı 
194
6.1.6. Kümelenmiş Yapı Veri Tipli Değişkenlerin Elemanlarına Erişme 
195
6.1.7. Kümelenmiş Yapılara İlk Değer Atama 
196
6.1.8. Kümelenme Derinliği 
196
6.2. Numaralama Veri Tipi 
197
6.2.1. Numaralama Sabitlerinin Değerlerini Açıkça Belirtme 
199
6.2.2. Numaralama Veri Tipi ve Giriş/Çıkış İşlemleri 
200
6.2.3. Numaralama Örnekleri 
200
6.3. Sorular ve Alıştırmalar 
201
Yedinci Bölüm:
FONKSİYONLAR: 1
7. FONKSİYONLAR: 1 
203
7.1. Giriş. 
203
7.2. Basit (Parametresiz) Fonksiyonlar 
203
7.2.1. Fonksiyonu Deklere Etme 
204
7.2.2. Fonksiyonu Tanımlama 
205
7.3.2. Fonksiyonu Çağırma 
205
7.2.4. Fonksiyon Tanımını Kitaplık Fonksiyonları İle Karşılaştırma 
205
7.2.5. Fonksiyonun Deklerasyonundan Kurtulma 
206
7.3. Parametreli Fonksiyonlar 
207
7.3.1. Fonksiyona Sabitleri Argüman Olarak Gönderme 
207
7.3.2. Fonksiyonun Parametreleri 
208
7.3.3. Fonksiyona Değişkenleri Argüman Olarak Gönderme 
209
7.3.4. Fonksiyonun Parametreleri ve Yerel Değişkenler 
210
7.4. Fonksiyona Veri Gönderme Şekilleri 
212
7.4.1. Fonksiyona Veriyi DEĞER Olarak Gönderme 
212
7.4.1.1. Fonksiyona Yapı Veri Tipli Argümanı DEĞER Olarak Gönderme 
213
7.4.1.2. Fonksiyona Dizi Veri Tipli Argümanı DEĞER Olarak Gönderme 
214
7.4.2. Fonksiyona Veriyi REFERANS Olarak Gönderme 
216
7.4.3. Fonksiyona Veriyi GÖSTERİCİ Olarak Gönderme 
216
7.5. Fonksiyondan Veri Alma (Veri Döndürme) 
216
7.5.1. ‘void’ Anahtar Kelimesi ve ‘return’ Deyimi 
217
7.5.1.1. return İfadesinde Gereksiz Değişkenlerden Kurtulma 
218
7.5.2. Fonksiyonlardan YAPI VERİ TİPLİ Veri Döndürme 
219
7.5.3. Fonksiyonlardan Verileri REFERANS Olarak Döndürme 
221
7.5.3.1. Referans Veri Tipi 
221
7.5.3.2. Referans Veri Tipli Değişken Tanımlama ve Ona Başlangıç Değeri Verme 
221
7.5.3.3. Referans Olarak Tanımlanan Değişkeni Kullanma 
222
7.5.3.4. Referans Olarak Tanımlanan Bir Değişkene Değer Atama 
223
7.5.3.5. Referans Örnekleri 
223
7.5.3.6. Basit Veri Tipli Verileri Fonksiyonlara REFERANS Olarak Gönderme 
223
7.5.3.7. Fonksiyona Referans Olarak İki Argüman Gönderme 
228
7.5.4. Fonksiyona Yapı Veri Tipli Verileri Referans Olarak Gönderme 
229
7.5.5. Referans Veri Tipli Dönüş Değerleri 
230
7.5.6. Bir Fonksiyonun const Referans Parametresi 
231
7.6. Fonksiyonların Aşırı Yüklenmesi 
232
7.6.1. Fonksiyonların Aşırı Yüklenmesi 
232
7.6.2. Fonksiyonların Aşırı Yüklenmesi ve Çok Şekillilik 
235
7.6.3. Fonksiyonların Aşırı Yüklenmesi ve Dönüş Veri Tipi 
237
7.7. Fonksiyonların Bazı Özellikleri 
238
7.7.1. Fonksiyonların Kendi Kendini Çağırması 
238
7.7.2. Yerel (inline) Fonksiyonlar 
238
7.7.3. Fonksiyonların Varsayılan Parametreleri 
240
7.7.4. Genel ve Yerel Değişkenler 
243
7.7.4.1. Statik Yerel Değişkenler 
244
7.8. Standart Fonksiyonlar 
245
7.9. Sorular ve Alıştırmalar 
247
Sekizinci Bölüm:
SINIF VERİ TİPİ VE NESNE
8. SINIF VERİ TİPİ ve NESNE 
249
8.1. Sınıf Veri Tipi 
249
8.1.1. Yapısal Programlama Hakkında Birkaç Söz 
249
8.1.2. Gerçek Dünyanın Modellenmesi 
249
8.1.3. Sınıfa Neden İhtiyaç Duyulur? 
249
8.1.4. Yapı ve Sınıf Veri Tipi Arasındaki İlişki 
251
8.1.5. Sınıf Tanımı 
251
8.1.6. Sınıf Veri Tipinin Özellikleri 
251
8.2. Sınıf Veri Tipi ve Nesne 
252
8.2.1. Sınıf Veri Tipi ve Nesne 
252
8.2.2. Sınıf Veri Tipi Tanımı 
254
8.2.3. private ve public Belirticileri 
255
8.2.4. Sınıf Veri Tipinin Üye Verileri 
256
8.2.5. Sınıf Veri Tipinin Üye Fonksiyonları 
256
8.2.6. Sınıf Veri Tipinin Kullanılması 
256
8.2.6.1. Bir Sınıfın Nesnelerinin Tanımlanması 
256
8.2.6.2. Nokta İşlemcisi ve Üye Fonksiyonların Çağırılması 
257
8.3. Fiziksel Nesneler Olarak C++ Nesneleri 
257
8.3.1. “Kimlik” Sınıfının “kim” Nesnesi 
258
8.3.2. “Dikdortgen” Sınıfının “Dortgen” Nesnesi 
259
8.4. Kurucu Fonksiyon 
261
8.4.1. Nesneleri İlk Kullanıma Hazırlama 
261
8.4.2. Nesnelerin Kendi Kendilerini İlk Kullanıma Hazırlaması 
262
8.4.3. Kurucu Fonksiyon 
262
8.4.4. Kurucu Fonksiyona Dikdortgen Örneği 
264
8.4.5. Kurucu Fonksiyonların Özellikleri 
264
8.4.6. Nesnelere Atanan İlk Değerlerin Listesi 
264
8.5. Yok Edici Fonksiyon 
265
8.6. Nesnelerin Fonksiyon Parametresi Olarak Kullanılması 
265
8.7. Varsayılan Kurucu Fonksiyon 
267
8.8. Kurucu Fonksiyonların Aşırı Yüklenmesi 
267
8.9. Üye Fonksiyonların Sınıfın Dışında Tanımlanması ve Kapsam Çözünürlük İşlemcisi 
268
8.10. Nesnelerin Parametre Olarak Kullanılması 
269
8.11. Varsayılan Kopyalama Kurucu Fonksiyonu 
271
8.12. Fonksiyonlardan Nesneleri Döndürme 
272
8.13. Parametreler ve Nesneler 
273
8.14. Yapılar ve Sınıflar 
276
8.15. Sınıfın Statik Üye Verisi 
277
8.15.1. Sınıfın static Üye Verisi 
277
8.15.2. Sınıfın static Üye Verisini Kullanma 
277
8.15.3. static Üye İçin Deklerasyon ve Tanım Ayrı Ayrı 
279
8.16. Üye Fonksiyonların const Olarak Deklere Edilmesi ve Tanımlanması İşlemleri 
279
8.16.1. Üye Fonksiyonun const Parametreleri 
280
8.16.2. const Olarak Tanımlanan Nesneler 
281
8.17. Sınıf Üyesi Olarak Karakter Dizileri 
282
8.18. "String" ve "string" Sınıfları 
289
8.19. Sorular ve Alıştırmalar 
291
Dokuzuncu Bölüm:
İŞLEMCİLERİN AŞIRI YÜKLENMESİ
9. İŞLEMCİLERİN AŞIRI YÜKLENMESİ 
293
9.1. Tekli İşlemcilerin Aşırı Yüklenmesi 
293
9.1.1. operator Anahtar Kelimesi 
294
9.1.2. İşlemci (operator) Fonksiyonunun Parametreleri 
295
9.1.3. İşlemci Fonksiyonunun Döndürdüğü Değer 
295
9.1.4. İsimsiz Geçici Nesneler 
297
9.2. İkili İşlemcilerin Aşırı Yüklenmesi 
300
9.2.1. Aritmetik İşlemcilerin Aşırı Yüklenmesi 
300
9.2.1.1. Nesneleri Toplama 
300
9.2.1.2. Karakter Katarlarını Birbirine Ekleme 
302
9.2.2. Karşılaştırma İşlemcileri 
303
9.2.3. Aritmetik Atama İşlemcileri 
304
9.3. İndis İşlemcisi 
305
9.3.1. getel() ve putel() Fonksiyonları 
305
9.3.2. Referans Olarak Dönen Bir Tek access() Fonksiyonu 
307
9.3.3. Referans Olarak Dönen Aşırı Yüklenmiş [ ] İndis İşlemcisi 
308
9.4. İşlemcilerin Aşırı Yüklenmelerine Getirilen Sınırlamalar 
309
9.4.1. Aşırı Yüklenecek İşlemcilerin Etki Edeceği İfadelerin Özelliği 
309
9.4.2. Başlangıçtaki Yazım Kuralına Uyma 
309
9.4.3. Aşırı Yüklenemeyen İşlemciler 
309
9.4.4. Aşırı Yüklenebilen İşlemciler 
310
9.4.5. Sadece Üye Fonksiyonlar Kullanılarak Aşırı Yüklenebilen İşlemciler 
310
9.5. Sorular ve Alıştırmalar 
312
Onuncu Bölüm:
KALITIM
10. KALITIM 
313
10.1. Kalıtım 
313
10.2. Temel Sınıf ve Türetilmiş Sınıf 
313
10.2.1. Türetilmiş Sınıfın Tanımında Temel Sınıfı Açıkça Yazmak Gerekir 
315
10.2.2. Türetilmiş Sınıfın Nesnelerinden Temel Sınıfın Elemanlarına Erişme 
320
10.2.2.1. Temel Sınıfın Kurucu Fonksiyonlarını Kullanma 
321
10.2.3. Temel Sınıfın Üye Fonksiyonlarını Kullanma 
321
10.2.4. Türetilmiş Sınıftan Temel Sınıfın Üye Fonksiyonunu Çağırma 
321
10.2.5. protected Erişim Belirticisi 
323
10.3. Üye Fonksiyonları Dikkate Almama 
326
10.3.1. Hangi Fonksiyon Tanımı Kullanılır? 
327
10.3.2. Dikkate Alınmayan Üye Fonksiyonlar ve Kapsam Çözünürlük İşlemcisi 
328
10.4. Sınıf Hiyerarşisi 
329
10.4.1. Soyut Temel Sınıf 
330
10.5. public ve private Kalıtım 
331
10.5.1. Erişme Kombinezonları 
331
10.6. Çoklu Kalıtım 
333
10.6.1. Çoklu Kalıtımda Belirsizlik 
336
10.6.2. Bir Başka Tür Belirsizlik 
337
10.7. Kalıtım ve Dinamik Bellek Kullanımı 
338
10.7.1. Türetilmiş Sınıfın new Kullanmaması Durumu 
338
10.7.2. Türetilmiş Sınıfın new Kullanması Durumu: 
339
10.8. Sorular ve Alıştırmalar 
340
Onbirinci Bölüm:
VERİ TİPİ DÖNÜŞÜMÜ
11. VERİ TİPİ DÖNÜŞÜMÜ 
341
11.1. Veri Tipi Dönüşümü 
341
11.1.1. Temel Veri Tipleri Arasındaki Veri Tipi Dönüşümleri 
342
11.1.2. Nesneler ve Temel Veri Tipleri Arasındaki Dönüşümler 
342
11.1.3. Temel Bir Veri Tipinden Kullanıcı Tarafından Tanımlanan Bir Veri Tipine Dönüşüm 
344
11.1.4. Kullanıcı Tarafından Tanımlanan Veri Tiplerinden Temel Veri Tiplerine Dönüşüm 
345
11.1.5. C– Karakter Katarları ve String Veri Tipli Nesneler Arasında Dönüşüm 
345
11.2. ‘explicit’ ve ‘mutable’ Anahtar Kelimeleri 
346
11.2.1. ‘explicit’ Sayesinde Dönüşümleri Engelleme 
346
11.2.2. mutable Kullanarak const Nesne Verilerini Değiştirme 
348
11.3. Dinamik Tip Bilgisi (Dynamic Type Information) 
350
11.3.1. dynamic_cast Yardımıyla Bir Sınıfın Veri Tipini Kontrol Etme 
350
11.3.2. dynamic_cast Yardımıyla Gösterici Tiplerini Değiştirme 
351
11.3.3. typeid İşlemcisi 
352
11.4. Sorular ve Alıştırmalar 
353
Onikinci Bölüm:
GÖSTERİCİ VERİ TİPİ
12. GÖSTERİCİ VERİ TİPİ 
355
12.1. Gösterici Veri Tipi 
355
12.1.1. Gösterici Veri Tipi Tanımı 
355
12.1.2. Kullanılan Bellek Alanlarını Karşılaştırma 
356
12.2. Gösterici Ne İşe Yarar? 
357
12.3. Niceliklerin Bellek Adresleri ve Göstericiler 
358
12.3.1. Adresi Al İşlemcisi 
358
12.4. Gösteren Değişken: Gösterici 
360
12.4.1. Gösterici Değişkeninin Veri Tipi Nedir? 
360
12.4.2. Göstericilerin Kullanılması 
362
12.5. Gösterilen Değişken (dereference) 
364
12.6. void’ı Gösteren Gösterici 
367
12.7. Gösterici Kullanmanın Zorluğu 
369
12.8. Göstericiler ve Diziler 
370
12.8.1. Dizi Gösterimi 
370
12.8.2. Dizinin Gösterici İle Temsili 
370
12.8.3. Dizi ve Gösterici Temsilinin Birlikte Kullanılması 
371
12.8.4. Fonksiyondan Dizi Veri Tipli Bir Veriyi Gösterici Kullanarak Döndürme 
373
12.8.5. Dizi Gibi Davranan Bir Sınıf Tanımı 
374
12.9. Göstericiler ve Fonksiyon Parametreleri 
375
12.9.1. Basit Değişkenleri Fonksiyona Referans Argüman Olarak Gönderme 
376
12.9.2. Diziyi Fonksiyona Gösterici Argüman Olarak Gönderme 
379
12.9.3. Göstericileri Fonksiyon Parametreleri Olarak Kullanma 
380
12.10. Fonksiyonları Gösteren Göstericiler 
381
12.10.1. Bir Fonksiyonun Adresini Elde Etme 
382
12.10.2. Fonksiyon Göstericisinin Deklerasyonu 
382
12.10.3. Fonksiyon Çağırmak İçin Fonksiyon Göstericisini Kullanma 
383
12.11. Göstericiler ve Karakter Katarları 
385
12.12. Dinamik Değişken ve new İşlemcisi 
388
12.12.1. Otomatik Değişken 
388
12.12.2. Statik (static) Değişken 
388
12.12.3. Dinamik Değişken 
388
12.13. Göstericileri Kullanarak Üye Fonksiyonlara Erişme 
394
12.13.1. Ok İşlemcisi 
394
12.14. new İşlemcisinin Döndürdüğü Göstericinin İçeriğine Ulaşma 
396
12.15. Göstericiler ve Nesneler 
396
12.16. Gösterici Niçin Kullanılır? 
397
12.16.1. Göstericilerin Kullanıldığı Yerler 
397
12.16.2. Stak (stack) ve Serbest Depolama Alanı (Heap) 
398
12.17. const Ayrılmış Kelimesi ve Göstericiler 
401
12.18. Bağlı Liste 
402
12.19. Göstericiyi Gösteren Gösterici 
403
12.20. Göstericilerin Öncelik Sıraları 
405
12.21. Sorular ve Alıştırmalar 
406
Onüçüncü Bölüm:
FONKSİYONLAR: 2
13. FONKSİYONLAR: 2 
407
13.1. Giriş 
407
13.2. Sanal Fonksiyonlar 
407
13.2.1. Sanal Fonksiyonlara Neden İhtiyaç Duyulur? 
407
13.2.2. Göstericilerle Erişilen Normal Üye Fonksiyonlar 
408
13.2.3. Göstericilerle Erişilen Sanal Üye Fonksiyonlar 
410
13.2.4. Soyut Sınıflar ve Saf Sanal Üye Fonksiyonlar 
415
13.2.5. SANAL Üye Fonksiyonlar 
418
13.2.6. Sanal YOK EDİCİ Fonksiyonlar 
420
13.3. Arkadaş–Dost Fonksiyonlar 
421
13.3.1. Dost Fonksiyonlar 
421
13.3.1.1. Çarpma İşlemcisi 
421
13.3.2. Dost Sınıflar 
427
13.4. Statik Fonksiyonlar 
428
13.4.1. static Fonksiyonlara Erişme 
430
13.4.2. Nesneleri Numaralama 
430
13.5. Aşırı Yüklenmiş Atama İşlemcisi 
431
13.6. Kopyalama Kurucu Fonksiyonu 
432
13.7. this Göstericisi 
434
13.7.1. Nesnenin Adresini Göstermek İçin this Göstericisini Kullanma 
434
13.7.2. Üye Veriye this Göstericisini Kullanarak Ulaşma 
435
13.7.3. Değer Döndürmek İçin this Göstericisini Kullanma 
436
13.8. Sorular ve Alıştırmalar 
439
Ondördüncü Bölüm:
AKIŞ VE DOSYA
14. AKIŞ VE DOSYA 
441
14.1. Akış 
441
14.1.1. Akış ve Buffer (Tampon) 
442
14.1.2. Başlık Dosyaları 
443
14.2. ios Sınıfı 
443
14.2.1. Biçimlendirme İşaretleri 
443
14.2.2. Biçimlendirme (Formatlama) İşaretlerini Ayarlama 
445
14.2.3. İki Parametreli setf() Fonksiyonunu Kullanma 
447
14.2.3.1. Tam Sayıları Formatlı Yazdırma 
447
14.2.3.2. Ondalık Sayıları Formatlı Yazdırma 
448
14.2.4. ios Düzenleyicileri (Manipulators) 
452
14.2.5. ios Fonksiyonları 
454
14.3. istream Sınıfı 
456
14.4. ostream Sınıfı 
457
14.5. iostream ve _withassign Sınıfları 
458
14.5.1. Ön Tanımlı Akış Nesneleri (Predefined Stream Objects) 
458
14.6. Akış Hataları 
459
14.6.1. Hata Durum İşaretleri (Error Status Bits) 
459
14.6.2. Sayıları Girme 
460
14.6.3. Çok Fazla Karakter Girme Problemi 
461
14.6.4. Girdisiz Girdi 
461
14.6.5. Karakter ve Karakter Katarı Girişi (Inputting Character and String) 
462
14.7. Akışlarla Disk (Metin) Dosyası Giriş/Çıkışları 
464
14.7.1. Biçimlendirilmiş Disk (Metin) Dosyası 
464
14.7.2. Verileri Disk (Metin) Dosyasına Yazdırma 
465
14.7.3. Açma Konusunda ofstream Sınıfının Nesnesinin Varsayılan Davranışını Değiştirme 
468
14.7.4. Programlar Çalışırken Oluşturulan Dosyaları Bulma ve Açma 
470
14.7.5. Verileri Dosyadan (Metin Dosyasından) Okutma 
471
14.7.6. Verileri Metin Dosyasına Yazdırma Ve Metin Dosyasından Okutma 
472
14.7.7. Boşluk İçeren Karakter Katarları 
474
14.7.8. Dosya Sonunu Tespit Etme 
476
14.7.9. Karakter Giriş/Çıkışı (Character I/O) İşlemleri 
477
14.8. İkili Sayı Sisteminde Giriş/Çıkış İşlemleri 
479
14.8.1. reinterpret_cast<>() İşlemcisi 
481
14.8.2. Dosyaları Kapatma 
481
14.8.3. Nesne Giriş/Çıkışları 
481
14.8.3.1. Bir Nesneyi Diske Yazma 
481
14.8.3.2. Diskten Bir Nesne Okutma 
482
14.8.3.3. Bir Nesneyi Dosyaya Yazdırma ve Dosyadan Okutup Ekrana yazdırma 
483
14.8.4. Uyumlu Veri Yapıları 
484
14.8.5. Birden Çok Kişi İçin Yapılan Giriş/Çıkış İşlemleri 
485
14.9. fstream Sınıfı 
486
14.9.1. open() Fonksiyonu 
486
14.9.1.1. Mod Bitleri (Sabitleri) (The Mode Bits) 
486
14.10. Dosya Göstericileri (File Pointers) 
488
14.10.1. Konumu Belirleme (Specifying the Position / the Offset) 
488
14.10.2. seekg() Fonksiyonu : Ötelemeyi Belirleme 
488
14.10.3. tellg() Fonksiyonu 
490
14.11. Hataların Bulunması 
490
14.12. Üye Fonksiyonlarla Dosya Giriş/Çıkışı 
494
14.12.1. Kendilerini Okuyup Yazabilen Nesneler 
494
14.12.2. Kendi Kendilerini Okuyup Yazan Sınıflar 
496
14.12.2.1. Statik Fonksiyonlar 
496
14.12.2.2. typeid() Fonksiyonunun Kullanılması 
497
14.13. Çıkarma ve Ekleme İşlemcilerini Aşırı Yükleme 
502
14.13.1. cout ve cin Nesnelerini Aşırı Yükleme 
502
14.13.2. << ve >> İşlemcilerini Dosyalar İçin Aşırı Yükleme 
503
14.14. Bir Akış Nesnesi Olarak Bellek 
505
14.14.1. Komut Satırı Parametreleri (Command. Line Arguments) 
506
14.14.2. Yazıcı Çıktısı 
509
14.15. Sorular ve Alıştırmalar 
511
Onbeşinci Bölüm:
ÇOK DOSYALI PROGRAMLAR
15. ÇOK DOSYALI PROGRAMLAR 
513
15.1. Giriş 
513
15.1.1. Arayüz 
513
15.1.2. Uygulama 
513
15.2. Çok Dosyalı Program Oluşturma 
514
15.2.1. Başlık Dosyaları 
514
15.2.2. Dizin 
514
15.2.3. Projeler 
515
15.3. Dosyalar Arasında Haberleşme 
515
15.3.1. Kaynak Kodu Dosyaları Arasındaki Haberleşme 
515
15.3.2. Değişkenlerin Dosyalar Arasında Ortak Kullanılması 
515
15.3.2.1. Programda Geçerli Tanım Sayısı 
516
15.3.2.2. Genel Değişkene Farklı Bir Dosyadan Erişme 
516
15.3.2.3. Bir Kısıtlama 
517
15.3.2.4. Genel Değişkenleri Aynı İsimle Farklı Dosyalarda Kullanma 
517
15.3.3. Fonksiyonların Dosyalar Arasında Ortak Kullanılması 
518
15.3.3.1. Deklerasyon ve Tanım 
518
15.3.3.2. Birden Çok Deklerasyon 
519
15.3.3.3. Statik Fonksiyonlar 
519
15.3.4. Sınıfların Dosyalar Arasında Ortak Kullanılması 
519
15.3.5. Başlık Dosyaları 
521
15.3.5.1. Başlık Dosyası Kullanma Sebebi 
521
15.3.5.2. Tanımları Başlık Dosyasına Koyma 
521
15.3.5.3. Sınıf Tanımını Kaynak Dosyaların Her Birine Koyma 
522
15.3.5.4. Harici Dosyaların Tanımları 
522
15.3.6. Birden Çok "include" Tehlikesi 
523
15.3.7. Birden Çok "include" u Önleme 
524
Onaltıncı Bölüm:
ŞABLONLAR
16. ŞABLONLAR 
525
16.1. Fonksiyon Şablonları 
525
16.1.1. Bu Kavrama Ne Gerek Var? 
525
16.1.2. Basit Bir Fonksiyon Şablonu 
526
16.1.3. Fonksiyon Şablonunun Söz Dizimi 
527
16.1.4. Birden Çok Parametresi Olan Fonksiyon Şablonları 
528
16.2. Sınıf Şablonları 
529
16.2.1. Üye Fonksiyonların Sınıfın Dışında Tanımlanması Durumu 
532
16.2.2. Şablon Kullanılan Bir Bağlı Liste Sınıfı 
535
16.3. Bir Veri Tipinin Jenerik ve Özel Parametreleri 
539
16.4. Birden Çok Veri Tipi Parametresine Sahip Olan Şablonlar 
542
16.4.1. Varsayılan Veri Tipli Şablon Parametreleri 
543
16.5. Şablonların “Üye” Olarak Kullanılması 
543
16.6. Sorular ve Alıştırmalar 
545
Onyedinci Bölüm:
KURAL DIŞI DURUMLAR
17. KURAL DIŞI DURUMLAR 
547
17.1. Kural Dışı Durumlar (istisnalar) 
547
17.2. Sorular ve Alıştırmalar 
553
Onsekizinci Bölüm:
STANDART ŞABLON KİTAPLIĞI (SŞK) = STL
18. STANDART ŞABLON KİTAPLIĞI (SŞK) = STL 
555
18.1. Giriş 
555
18.2. Depolayıcı 
555
18.3. Sıralı Depolayıcılar 
557
18.3.1. Vektörler (vectors) 
558
Vektor Sınıfının Kurucu Fonksiyonları ve Nesnelere İlk Değerlerin Atanması 
558
push_back(), size() ve operator [] Üye Fonksiyonları 
565
swap(), empty(), back() ve pop_back() Üye Fonksiyonları 
567
insert() ve erase() Üye Fonksiyonları 
569
18.3.2. Listeler (lists) 
573
push_front(), front() ve pop_front() Üye Fonksiyonları 
573
reverse(), merge() ve unique() Üye Fonksiyonları 
574
18.3.3. Çift Uçlu Kuyruk (Deque) 
576
18.4. Birleşik Depolayıcılar 
578
18.4.1. Kümeler ve Çoklu Kümeler 
579
18.4.2. Eşlemeler ve Çoklu Eşlemeler 
583
18.4.3. Birleşik Dizi 
583
18.5. Depolayıcıların Kendi Üye Fonksiyonları 
585
18.6. Depolayıcı Uyarlayıcıları 
586
18.7. Algorirma 
587
18.7.1. Algoritma Örnekleri 
588
find() Algoritması 
588
count() Algoritması 
590
sort() Algoritması 
591
search() Algoritması 
595
merge() Algoritması 
596
remove() Algoritması 
598
Algoritmalara _if Ekleme 
600
for_each() Algoritması 
601
transform() Algoritması 
603
18.8. İteratör 
604
18.8.1. Akıllı Gösterici Olarak İteratör 
606
18.8.2. Sıradan Göstericilerin Durumu 
607
18.8.3. İteratörleri Tamamen Ayrı Bir Sınıf Olarak Tanımlama 
608
18.8.4. Arayüz Olarak İteratörler 
608
18.8.5. Algoritmaları Depolayıcılarla Eşleştirme 
610
18.8.6. Depolayıcı Ucu 
610
18.7.7. İteratörü Algoritmaya Bağlama 
611
18.8.8. Üye Fonksiyonlarla Algoritmalar Arasında Seçim Yapma 
612
18.8.9. İteratörlerin Kullanılması 
612
18.8.9.1. Veriye Erişme 
613
18.8.9.2. Veri Ekleme 
614
18.8.9.3. Algoritmalar ve İteratörler 
616
18.8.10. Özelleştirilmiş İteratörler 
618
18.4.10.1. İteratör Uyarlayıcıları 
618
Ters İteratörler 
619
Ekleme İteratorleri 
621
Ham Veri Saklama İteratörleri 
624
18.4.10.2. ostream_iterator Sınıfı 
624
18.4.10.3. istream_iterator Sınıfı 
626
18.8.11. Kullanıcı Tarafından Tanımlanan Nesneleri Depolama 
629
18.8.11.1. Kisi Sınıfının Nesnelerinin Kümesi 
629
18.8.11.2. Gerekli Üye Fonksiyonlar 
631
18.8.11.3. Sıralama 
632
18.8.11.4. Tıpkı Temel Veri Tipleri Gibi 
632
18.8.11.5. Kisi Sınıfının Nesnelerinin Listesi 
632
18.8.11.6. Belirli Bir İsme Sahip Tüm Kişileri Bulma 
634
18.8.11.7. Belirli Bir Telefon Numarasına Sahip Tüm Kişileri Bulma 
635
18.9. Fonksiyon Nesneleri 
635
18.9.1. Derleyicide Tanımlı Fonksiyon Nesneleri 
635
18.9.2. Kendi Fonksiyon Nesnelerini Yazma 
639
18.9.3. KisileriKarsilastir() Fonksiyon Nesnesi 
641
18.9.4. KisiYaz() Fonksiyon Nesnesi 
641
18.9.5. Depolayıcının Davranışını Değiştirmek İçin Kullanılan Fonksiyon Nesneleri 
642
18.10. STL İle İlgili Endişeler 
642
Ondokuzuncu Bölüm:
Dev–C++ ve GRAFİK EKRAN MODUNA GİRİŞ
19. Dev–C++ ve GRAFİK EKRAN MODU’NA GİRİŞ 
643
19.1. Grafik Ekran and C++ 
643
19.1.1. Bazı Seçimler 
643
19.1.2. Dev–C++ Derleyicisinin İndirilmesi ve Kurulması 
644
19.1.3. Grafik Ekranı İçin Gerekli Dosyalar 
645
19.2. Grafik Ekran İçin Proje Oluşturma 
647
19.2.1. Grafik Projesi Oluşturma 
647
19.2.2. Grafik Projesi Ayarları 
648
19.2.3. Araçlar/Tools Menüsünden Yapılması Gereken Seçimler 
648
19.3. Kaynak Kodu Dosyası Oluşturma 
649
19.3.1. Kaynak Kodu Dosyası Oluşturma 
649
19.3.2. Kaynak Kodu Dosyasını Kaydetme 
649
19.3.4. Kaynak Kodu Programını Derleme ve Çalıştırma 
649
19.3.4.1. Win32 Konsol Penceresi 
650
19.3.4.2. Win32 GUI Grafik Penceresi 
651
19.4. Yeni Bir Proje 
652
19.5. graphics.h Başlık Dosyası Ne Durumda? 
659
19.6. winbgim.h Başlık Dosyasında Yer Alan Bazı Fonksiyonlar 
660
19.6.1. İlk Değerler, Silme ve Bekletme 
660
19.6.2. Renklendirme, Stil ve Kalınlık Fonksiyonları 
661
19.6.3. Koordinatlar 
661
19.6.4. Metin Formatlama 
661
19.6.5. Grafik Penceresinde Mesaj Yazdırma 
662
19.6.6. Mouse Input 
662
19.7. “Borland Turbo C” İçin Yazılmış Olan Örnek “Konsol Grafiği Programları”nın Dev–C++ Derleyicisinde Win32 GUI veya Win32 Konsol Modunda Çalıştırılması 
662
Yirminci Bölüm:
EKLER
20. EKLER 
667
20.Ek–1. İşlemcilerin Öncelik Sıraları 
667
20.Ek–2. Depolayıcıların Üye Fonksiyonları 
670
20.Ek–3. Algoritma Tabloları 
671
20.Ek–3.1. Genel Açıklamalar 
671
20.Ek–3.2. Değişmeyen Ardışıklık (Ardıllık) İşlemleri 
672
20.Ek–3.3. Değişen Ardışıklık (Ardıllık) İşlemleri 
673
20.Ek–3.4. Sıralama ve İlgili İşlemler 
674
20.Ek–3.5. Genelleştirilmiş Sayısal İşlemler 
677
20.Ek–4. Algoritmalar İçin Gerekli Olan İteratörler 
678
20.Ek–5. zaman 
680
20.Ek–5.1. zamanh.h 
680
20.Ek–5.2. zamanCPP.cpp 
680
20.Ek–6. Sınıflar 
681
20.Ek–6.1. siniflarh.h 
681
20.Ek–6.2. siniflarCPP.cpp 
684
20.Ek–7. Kalıtım 
685
20.Ek–7.1. kalitimh.h 
685
20.Ek–8. Çalışan 
687
20.Ek–8.1. calisanlarh.h 
687
20.Ek–8.2. calisanlarCPP.cpp 
689
20.Ek–9. Kişiler 
690
20.Ek–9.1. kisilerh.h 
690
20.Ek–9.2. kisilerCPP.cpp 
692
Kaynaklar 
695
Kavramlar Dizini 
697