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.
Eğitimin Amacı
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 gibi konular işlenir; dilin gelişimi ve standartları için C++ üzerine genel bir kaynak arka planı tamamlar. STL (vector, map, list, algorithm), akıllı işaretçiler (smart pointer), lambda ifadeleri ve modern C++ (C++11/14/17/20) özellikleri de programa dahildir.
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ı
Şirketiniz İçin Eğitim Teklifi Alın
C++ Eğitimi programını şirketinizde, merkezimizde veya online formatta planlayabiliriz. Formu doldurun, eğitim danışmanımız katılımcı sayısı ve içerik ihtiyacınıza göre aynı gün dönüş yapsın.


