C++ EĞİTİMİ

Nesne Tabanlı Sistem Programlama
C++ Eğitimi — Nesne Tabanlı Sistem Programlama

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.