C++ 3D logosu yanında iki C++ standart kütüphane modül küpü bembeyaz arka planda premium kompozisyon

C++ Eğitimi, dili kaynak yönetimi ve performans bilinciyle kullanmaya yönlendirir. Katılımcılar, bellek üzerinde kontrol gerektiren yazılımları güvenle geliştirme becerisi kazanır.

Nesne yönelimi, şablonlar ve standart kütüphane konuları bu C++ kursunda bir araya gelerek verimli ve güvenli kod yazma pratiği gelişir. Konular, dilin resmi kaynakları temel alınarak işlenir.

C++ eğitimini şirketinize özel planlayalım. 0212 951 0608 · Teklif isteyin

Katılımcı Profili

Bu program, C++'ı sahiplik ve değer kategorisi disiplinle kullanmak isteyen rollere yöneliktir:

  • C++ Geliştiriciler: Dil idiom'ları ve modern standart hakimiyeti isteyen mühendisler
  • Sistem Programcıları: Linux ve Windows native uygulama yazan roller
  • Oyun Geliştiriciler: Unreal Engine veya custom engine üzerinde C++ kullanan ekipler
  • Gömülü Geliştiriciler: Performans ve bellek kontrolü gerektiren donanım üzerinde yazanlar
  • HFT ve Latency Mühendisleri: Düşük latency hedefiyle C++ tercih eden ekipler

Ön Gereklilikler

Bu eğitime katılım için aşağıdaki ön bilgiler önerilir:

  • Herhangi bir dilde OOP (class, inheritance, polymorphism) deneyimi
  • C veya C-benzeri dilde temel söz dizimi rahatlığı
  • Pointer ve memory model kavramlarına giriş düzeyi aşinalık
  • Komut satırı ve derleme süreci ile rahatlık
  • CMake veya başka bir build aracıyla temel deneyim

Süresi ve Tarihi

Süre: 4 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.

Kazanımlar

Programın sonunda katılımcı, C++'ı "her şey serbest" diliyle değil, sahiplik ve değer kategorisiyle düşünerek yazar:

  • lvalue, rvalue ve xvalue kategorilerini operatör seçiminde kullanır
  • RAII'yi sahiplik modeline yedirir, raw pointer'ı kapı dışında tutar
  • Rule of five'ı (copy, move, dtor) bilinçle uygular
  • Template ile generic kod yazar; SFINAE ve concept'i okuyup yorumlar
  • STL container'larını cache locality ve invalidation davranışına göre seçer
  • Exception safety'yi basic, strong ve no-throw garantisiyle ayrıştırır
  • CMake ile cross-platform build kurar, FetchContent ile dependency yönetir

Eğitim materyalleri ISO C++ referans alınarak hazırlanır.


C++ Eğitimi Konuları

1. C++ Mirası ve Modern Sürüm Manzarası

  • C ile uyumluluk mirası ve kopma noktaları
  • Modern C++ standart akışı (11, 14, 17, 20, 23)
  • Sistem programlama, oyun ve HFT alanlarındaki yeri
  • Sıkça karşılaşılan eski-yeni stil çatışması

2. Derleme Süreci, Toolchain ve Build Sistemleri

  • GCC, Clang, MSVC derleyici farkları
  • Preprocess, compile, assemble, link aşamaları
  • CMake ve Conan/vcpkg ile paket yönetimi
  • Cross-compile ve target triple kavramı

3. Tipler, auto ve Type Deduction

  • Temel tipler, fixed-width tipler (cstdint)
  • auto, decltype ve decltype(auto)
  • Type alias ve using deklarasyonu
  • const, constexpr, consteval, constinit ayrımı
  • Implicit dönüşüm ve narrowing conversion riski

4. Referans, lvalue ve rvalue

  • lvalue ve rvalue değer kategorileri
  • lvalue reference (&) ve rvalue reference (&&)
  • Reference collapsing kuralı
  • std::move ve std::forward kullanım sınırı

5. Pointer ve Smart Pointer Mirası

  • Raw pointer, reference ve smart pointer ayrımı
  • unique_ptr ile tek sahiplik
  • shared_ptr ve referans sayımı maliyeti
  • weak_ptr ile döngüsel referansı kırma
  • make_unique, make_shared'ın avantajı

6. Move Semantics ve Perfect Forwarding

  • Move constructor ve move assignment
  • Gereksiz kopyalardan kaçınma stratejisi
  • Universal reference (T&&) ve forwarding
  • std::forward ile argüman yönlendirme
  • Copy elision ve RVO/NRVO mantığı

7. RAII - Kaynak Yönetiminin Bel Kemiği

  • RAII (Resource Acquisition Is Initialization) prensibi
  • Constructor ile kaynak edinme, destructor ile bırakma
  • Exception safety: basic, strong, nothrow garanti
  • Scope guard ve cleanup pattern
  • std::lock_guard, std::unique_lock RAII örneği

8. Class, Constructor, Destructor ve Rule of Five

  • Class tasarımı: public, protected, private
  • Default, copy, move constructor üretimi
  • Rule of Three, Five ve Zero
  • Explicit constructor ve implicit dönüşüm engeli
  • = default, = delete ile niyet bildirimi

9. Inheritance ve Diamond Problem

  • Public, protected, private inheritance ayrımı
  • Multiple inheritance ve diamond problem
  • Virtual inheritance ile diamond çözümü
  • Slicing sorunu ve önleme
  • Composition over inheritance prensibi

10. Polymorphism ve Virtual Function

  • Virtual function ve vtable mekanizması
  • override, final anahtarlarıyla niyet
  • Pure virtual ve abstract class
  • Virtual destructor kuralı (base class için)
  • Static polymorphism: CRTP pattern

11. Operator Overloading

  • Member ve non-member operator tanımı
  • Comparison operatörleri ve consistency
  • Three-way comparison (<=>) ve auto-generated
  • Stream operator (<<, >>) ile özelleştirme

12. Template - Generic Programming

  • Function template ve class template
  • Template parameter: type, non-type, template
  • Template specialization (full ve partial)
  • Variadic template ve parameter pack
  • Fold expression ile sade kullanım

13. Template Metaprogramming ve SFINAE

  • type_traits ile compile-time tip sorgulama
  • SFINAE (Substitution Failure Is Not An Error)
  • enable_if pattern'i ve okunabilirlik sınırı
  • if constexpr ile derleme zamanı dallanma

14. Concepts ve Constraint

  • Concept tanımı ve requires ifadesi
  • Standart kütüphane concept'leri: integral, floating_point
  • SFINAE üzerinden Concepts'e geçiş
  • Daha okunabilir hata mesajları

15. STL Container ve Iterator

  • vector, deque, list ve seçim kriteri
  • map, unordered_map; set, unordered_set
  • array, span, string_view modern kullanımları
  • Iterator kategorileri: input, forward, bidirectional, random access
  • Iterator invalidation tuzakları

16. STL Algorithm ve Lambda

  • for_each, transform, find, accumulate algoritmaları
  • sort, partition, nth_element ile sıralama
  • Lambda söz dizimi ve capture clause
  • Generic lambda ve auto parametre
  • Custom comparator ve predicate yazımı

17. Ranges - Pipeline ile Veri Dönüşümü

  • Range ve view kavramı
  • Pipe (|) operatörü ile zincirleme
  • filter, transform, take, drop view'ları
  • Eager ve lazy evaluation farkı

18. Exception Handling ve noexcept

  • try, catch, throw ve exception hiyerarşisi
  • std::exception ve custom exception sınıfı
  • noexcept ile fonksiyon istisna garantisi
  • Stack unwinding ve destructor güvenliği
  • Hata kodu ve exception arasında seçim

19. constexpr ve Compile-Time Computation

  • constexpr fonksiyon ve değişken
  • consteval ile zorunlu compile-time
  • constexpr STL fonksiyonları
  • Compile-time hesaplama avantajı

20. Modules - Header Devrinin Sonu

  • module, import söz dizimi
  • Header'a göre derleme süresi kazancı
  • Modüle ihracat ve ABI sınırı
  • Hibrit projelerde modules entegrasyonu

21. Coroutines - co_await, co_yield, co_return

  • Coroutine kavramı ve stackless yapısı
  • co_await, co_yield, co_return anahtar kelimeleri
  • Generator ve async task pattern
  • Promise type ve awaiter customization

22. Multithreading - thread, mutex, atomic

  • std::thread oluşturma ve join/detach
  • mutex, lock_guard, scoped_lock
  • condition_variable ile bekleme
  • std::atomic ve memory order
  • std::async, std::future, std::promise
  • jthread ve stop_token (cooperative cancellation)

C++ EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları


C++ eğitimini kurumumuza özel planlayabilir miyiz?

Evet. C++ eğitimini tamamen kurumunuza özel planlıyoruz; konu kapsamı ve takvim, hedeflerinize ve katılımcı kadronuzun uygunluğuna göre birlikte şekillenir.

C++ eğitimini hangi şehirlerde veriyorsunuz?

C++ eğitimini kurumunuzun bulunduğu ilde yerinde veriyoruz; İstanbul, Ankara ve İzmir başta olmak üzere Türkiye'nin her iline gelmekteyiz. İsteyen firmalara eğitim canlı online olarak da sunulur.

C++ eğitimini online veriyor musunuz?

Evet, C++ eğitimini canlı online olarak da veriyoruz; birlikte uygulamalı oturumlarla Türkiye'nin neresinde olursanız olun katılabilirsiniz. Program kurumunuzun ihtiyacına göre belirlenir.

C++ eğitimi çalışanlarımızın seviyesine göre uyarlanıyor mu?

Evet. C++ eğitiminin başında katılımcıların seviyesi değerlendirilir ve içerik buna göre ayarlanır; sıfırdan başlanabileceği gibi ileri konulara da odaklanılabilir.

C++ eğitimi projemiz üzerinden ilerleyebilir mi?

Eğitim, kendi projeniz veya kullanım senaryonuz üzerinden ilerleyebilir. Bunun için teklif öncesinde projenizi bize iletmeniz ya da tarif etmeniz gerekmektedir; böylece eğitimi gerçek işinize göre kurgularız.

C++ eğitmenleriniz hakkında bilgi alabilir miyiz?

Eğitmenlerimiz yazılım geliştirme alanında sahada deneyimli, C++ ile gerçek projeler geliştirmiş yazılımcılardır. İhtiyacınıza ve hedefinize en uygun eğitmeni sizinle eşleştiriyoruz.

Katılımcılarımıza sertifika veriliyor mu?

Evet. Eğitim sonunda katılımcılarımıza katılım sertifikası veriyoruz; sertifikada eğitimin kapsamı ve katılımcı bilgileri yer alır, kurumunuzun tercihine göre dijital ya da basılı olarak hazırlanır.

C++ eğitiminin fiyatı ne kadar?

Sabit bir C++ eğitimi ücreti yoktur; fiyat, katılımcı sayısı, kapsam ve süreye göre belirlenir. İhtiyacınızı dinleyip kurumunuza özel bir teklif sunarız.

C++ eğitim planınızı ekibinize göre netleştirelim, teklif isteyin.
0212 951 0608 · Kurumsal teklif