C++ EĞİTİMİ
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



