C++ EĞİTİMİ
C++ 1985'te Bjarne Stroustrup tarafından geliştirildi: C diline nesne tabanlı programlama eklendi. Bugün Unreal Engine, Chrome, Photoshop, finansal işlem sistemleri, oyun konsolu yazılımları gibi performans gerektiren her yerde C++ kullanılır. Diğer modern dillere göre öğrenmesi zor olsa da öğrenildiğinde hız ve esneklik bakımından eşi yoktur.
C++ Eğitimi, modern C++ dilini sistematik kazandırır. C temellerinden farklı, sınıflar ve nesneler, kapsülleme, kalıtım (inheritance), polimorfizm, soyut sınıflar ve sanal fonksiyonlar, operatör overloading, şablon (template) ve generic programlama, STL (vector, map, list, algorithm), akıllı işaretçiler (smart pointer), lambda ifadeleri ve modern C++ (C++11/14/17/20) özellikleri işlenir.
C++ Eğitimi, oyun motoru geliştiricileri, performans odaklı yazılım yapan profesyoneller, savunma sanayi yazılımcıları, finansal işlem sistemleri geliştiriciler ve üniversite öğrencileri için tasarlanmıştır. Eğitim sonunda katılımcı, modern C++ ile orta-büyük ölçekli uygulama geliştirebilir.
Ön Koşullar
C++ Eğitimi için ön koşul, C dili veya benzer bir programlama dilinde temel bilgi sahibi olmaktır. Nesne tabanlı programlama kavramlarına aşinalık avantajdır.
Kimler Katılmalı
- Oyun Motoru Geliştiricileri: Unreal Engine ve performans kritik oyun yazılımı yapanlar
- Performans Odaklı Yazılım Yapan Profesyoneller: Düşük gecikme sistemleri yazanlar
- Savunma Sanayi Yazılımcıları: Kritik sistem yazılımları geliştirenler
- Finansal İşlem Sistemleri Geliştiricileri: Yüksek hızlı işlem yazılımı yapan kadrolar
- Üniversite Öğrencileri: Bilgisayar mühendisliği öğrencileri
- Robotik Yazılım Geliştiricileri: Otonom sistem geliştirenler
- Sistem Yazılımı Yapan Profesyoneller: İşletim sistemi ve sürücü geliştirenler
Eğitim Yöntemi
Sunum, OOP atölyesi, STL kullanım egzersizi, template ve smart pointer pratiği ve katılımcının kendi modern C++ uygulamasını üretme çalışması ile yürür.
Kazanımlar
- Sınıflar ve Nesneler: OOP temel yapı taşları
- Kapsülleme ve Kalıtım: Veri gizleme ve hiyerarşi kurma
- Polimorfizm: Sanal fonksiyon ve dinamik bağlama
- Operatör Overloading: Özelleştirilmiş operatör davranışları
- Template ve Generic: Tip-bağımsız kod yazma
- STL (vector, map, list): Standart şablon kütüphanesi kullanımı
- Akıllı İşaretçiler: unique_ptr, shared_ptr ile güvenli bellek yönetimi
Eğitim Süresi
4 Gün (32 Saat). Kurumsal talebe göre 3 günlük yoğun veya 5 günlük uygulamalı versiyon olarak planlanabilir.
C++ Eğitimi İçeriği
1. C++ Tarihçesi ve Konumu
- Stroustrup'tan günümüze C++ evrimi
- C ve C++ arasındaki temel farklar
- Modern C++ (C++11/14/17/20/23) yenilikleri
- Hangi senaryolarda C++ tercih edilir
2. Geliştirme Ortamı ve Derleme
- GCC, Clang ve MSVC derleyiciler
- CMake ile çapraz platform derleme
- IDE seçenekleri (VS, CLion, VS Code)
- Linker ve önişlemci aşamaları
- Debug ve release modu farkları
3. Temel Sözdizimi ve Veri Türleri
- Primitif tipler ve fixed-width integer'lar
- auto ve decltype kullanımı
- const, constexpr ve consteval
- Referanslar ve değer kategorileri
- Initialization (brace, copy, direct)
4. Kontrol Akışı ve Fonksiyonlar
- if, switch, for, while yapıları
- Range-based for loop
- Fonksiyon overloading ve default argümanlar
- Inline fonksiyonlar
- Pass-by-value, reference, pointer karşılaştırması
5. Pointer ve Referans Yönetimi
- Raw pointer ve aritmetiği
- nullptr ve null güvenliği
- Pointer-to-pointer kullanım örnekleri
- Referans semantiği ve sınırlamalar
6. Bellek Yönetimi Temelleri
- Stack ve heap ayrımı
- new ve delete operatörleri
- Bellek sızıntısı (memory leak)
- RAII prensibi
- Dangling pointer ve undefined behavior
7. Sınıflar ve Nesneler
- Sınıf tanımı ve erişim belirleyicileri
- Constructor ve destructor
- this pointer ve const üye fonksiyonlar
- Copy constructor ve copy assignment
- Move constructor ile rvalue referans
8. Kapsülleme ve Veri Gizleme
- Getter ve setter tasarımı
- friend sınıf ve fonksiyon kullanımı
- Static üyeler ve sınıf seviyesinde durum
- Encapsulation ile bakım kolaylığı
9. Kalıtım (Inheritance)
- Public, protected ve private kalıtım
- Çoklu kalıtım ve elmas problemi
- Sanal kalıtım çözümü
- Base ve derived class ilişkisi
- Slicing problemi
10. Polimorfizm ve Sanal Fonksiyonlar
- Virtual ve override keyword'leri
- Dynamic dispatch (vtable) mantığı
- Pure virtual ve abstract sınıflar
- Final ile kalıtımı sınırlama
11. Operatör Overloading
- Aritmetik ve karşılaştırma operatörleri
- Stream operatörleri (<<, >>)
- Subscript ve function call operatörü
- Conversion operatörleri
- Üye ve serbest fonksiyon seçimi
12. Template ve Generic Programlama
- Function template ve class template
- Template özelleştirme
- Variadic template'ler
- Template metaprogramming temelleri
- Concepts (C++20) ile kısıtlar
13. STL Konteynerleri
- vector, deque, list yapıları
- map, unordered_map, set
- stack, queue, priority_queue
- Konteyner seçim kriterleri
- Iterator kategori ve geçerliliği
14. STL Algoritmaları
- find, sort, transform, copy
- accumulate ve numeric algoritmalar
- Lambda ile algoritma özelleştirme
- Ranges (C++20) ile fonksiyonel yaklaşım
15. Akıllı İşaretçiler (Smart Pointers)
- unique_ptr ve ownership semantiği
- shared_ptr ve reference counting
- weak_ptr ile çevrim kırma
- make_unique ve make_shared
- Raw pointer ile karışık kullanım
16. Hareket Semantiği (Move Semantics)
- lvalue, xvalue, prvalue ayrımı
- std::move ve std::forward
- Rule of three/five/zero
- Perfect forwarding
- Performans üzerindeki etkisi
17. İstisna Yönetimi ve Hata İdaresi
- try-catch ve exception sınıfı hiyerarşisi
- noexcept ve exception specification
- RAII ile istisna güvenli kod
- std::expected ve std::optional
18. Modern C++ Özellikleri
- Lambda expressions ve closure
- Structured bindings
- if constexpr ve compile-time mantık
- Coroutines (C++20)
- Modules ve future package management
19. Çoklu İş Parçacığı (Concurrency)
- std::thread ve join/detach
- Mutex, lock_guard ve unique_lock
- Atomic operations
- std::async ve future
- Data race ve memory model
20. Performans, Test ve Best Practice
- Profiler kullanımı ile bottleneck analizi
- Cache locality ve veri yerleşimi
- Google Test ile birim testi
- Static analiz ve sanitizer'lar
- Kurumsal C++ kodlama standartları





