C++: USING THE MOVE CONSTRUCTOR & MOVE ASSIGNMENT OPERATOR EĞİTİMİ

Kopyalamayı bırak, kaynağı taşı

Move semantiği, rvalue referansları ve kaynak aktarımı ekseninde modern C++ eğitimi

C++ Move Constructor ve Move Assignment eğitimi; lvalue, prvalue ve xvalue, Rvalue Referansı ve std::move, Kopya Maliyetini Ölçmek, Perfect Forwarding'e Giriş ve daha fazlası. 2 gün, uygulamalı lab çalışmaları, Digital Vizyon Akademi katılım sertifikası.

2 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Value Kategorileri ve Rvalue Referansları ve Move Constructor ve Move Assignment ekseninde ilerleyen uygulamalı program

Bu eğitim C++11 ile gelen move semantiğini temelinden ele alır: lvalue/rvalue ayrımı, rvalue referansı (T&&), std::move ve std::forward, move constructor ile move assignment operator yazımı, noexcept'in std::vector gibi konteynerlerdeki rolü ve Rule of Zero/Three/Five dengesi. Dinamik bellek tutan sınıflar üzerinde kopya maliyeti ölçülür, taşınan nesnenin geçerli ama belirsiz durumu ve self-assignment tuzakları uygulamalı incelenir.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Value Kategorileri ve Rvalue Referansları; 2. gün Move Constructor ve Move Assignment.

Seviye

Orta Seviye — Move semantiği, rvalue referansları ve kaynak aktarımı ekseninde modern C++ eğitimi

Öğrenme Metodu

Her modülde kısa konu anlatımının ardından g++/clang++ ile derlenen kod egzersizleri yapılır; sanitizer ve derleyici uyarılarıyla hatalar birlikte ayıklanır.

Neden Bu Eğitim?

💻Kod Odaklı Öğrenme

C++ Move Constructor ve Move Assignment konuları her modülde yazıp çalıştırdığınız egzersizlerle pekiştirilir; teori kodla birlikte ilerler.

🐞Gerçek Hata Örnekleri

Sahada sık görülen hatalar bilinçli olarak üretilir, nedenleri incelenir ve kalıcı çözüm kalıpları gösterilir.

🎓Katılım Sertifikası

Eğitimi tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası alır.

Anahtar Konular

C++ Move Constructor ve Move Assignment eğitimiC++ Move Constructor ve Move Assignment kursuC++ move semanticsrvalue referencestd::movestd::forwardRule of Fivemodern C++ eğitimiDigital Vizyon Akademi
“Kaynağı kopyalamak maliyetlidir, sahipliği devretmek ise tasarımdır.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
C++ Temelleri

Değişken, fonksiyon, sınıf ve işaretçi kavramlarına temel düzeyde aşinalık beklenir.

2
Derleyici Ortamı

g++ / clang++ veya MSVC ile C++17 standardında derleme yapabilen bir kurulum gerekir.

3
Komut Satırı

Derleme çıktılarını ve hata mesajlarını okuyabilecek kadar terminal alışkanlığı faydalıdır.

4
Editör veya IDE

VS Code, CLion ya da Visual Studio gibi bir geliştirme ortamı hazır olmalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı rvalue referanslarını ve value kategorilerini ayırt eder, std::move ile doğru kullanım noktalarını belirler.
Modül 1
lvalue, prvalue ve xvalue
  • lvalue ve rvalue ayrımı ve bir ifadenin kategorisinin belirlenmesi
  • C++17 prvalue, xvalue, glvalue sınıflandırması
  • Geçici nesnelerin ömrü ve ifade sonunda yok edilmesi
  • Copy elision ve guaranteed elision (C++17) kuralları
  • RVO/NRVO ile değer döndürmenin maliyeti
  • decltype ile ifade kategorisinin gözlemlenmesi
Modül 2
Rvalue Referansı ve std::move
  • T&& bildirimi ve rvalue'ya bağlanma kuralları
  • std::move'un aslında yalnızca bir cast olduğunun gösterilmesi
  • const rvalue referansının neden işe yaramadığı
  • İsimli rvalue referansının lvalue olması durumu
  • Taşınmış nesnenin geçerli ama belirsiz durumu (valid but unspecified)
  • Gereksiz std::move ile RVO'yu engelleme hatası
Modül 3
Kopya Maliyetini Ölçmek
  • Dinamik dizi tutan basit bir Buffer sınıfının yazılması
  • Kopya constructor çağrılarının sayaç ile izlenmesi
  • std::chrono ile kopya ve taşıma sürelerinin karşılaştırılması
  • Fonksiyona değer ile parametre geçirmenin maliyeti
  • std::vector<std::string> push_back davranışının incelenmesi
  • Derleyicinin sağladığı -fno-elide-constructors deneyi
Modül 4
Perfect Forwarding'e Giriş
  • Forwarding reference (T&&) ile rvalue referansın farkı
  • Reference collapsing kuralları
  • std::forward ile değer kategorisinin korunması
  • emplace_back ve make_unique içindeki iletim mantığı
  • Variadic template ile sarmalayıcı fonksiyon yazımı
  • Yanlış forward kullanımının yol açtığı çift taşıma hatası
Günün hedefiKatılımcı move constructor ve move assignment operator'ı güvenli biçimde yazar, noexcept ve Rule of Five ilkelerini uygular.
Modül 1
Move Constructor Yazımı
  • Buffer(Buffer&&) imzası ve işaretçi çalma deseni
  • Kaynak nesnenin nullptr ve sıfır boyutla bırakılması
  • Üye nesnelerin std::move ile taşınması
  • Taban sınıf alt nesnesinin taşınması
  • Derleyici üretimli (=default) taşıma davranışı
  • Taşıma sonrası nesnenin yeniden kullanılabilirliği
Modül 2
Move Assignment Operator
  • operator=(Buffer&&) imzası ve eski kaynağın serbest bırakılması
  • Self-move assignment kontrolü ve gerekçesi
  • Copy-and-swap ile birleşik atama operatörü
  • Dönüş tipi olarak *this referansı
  • Zincirleme atama ve ömür sorunları
  • Taşıma atamasının test edilmesi
Modül 3
noexcept ve Konteyner Etkileşimi
  • noexcept'in move constructor için önemi
  • std::vector yeniden tahsisinde move_if_noexcept davranışı
  • noexcept(noexcept(...)) koşullu belirtimi
  • std::is_nothrow_move_constructible ile derleme zamanı kontrolü
  • Taşıma atarsa strong exception guarantee'nin kaybı
  • Valgrind/ASan ile kaynak sızıntısı doğrulama
Modül 4
Rule of Zero, Three ve Five
  • Kopya/taşıma özel üyelerinin birbirini silme kuralları
  • Destructor tanımlayınca taşımanın kaybolması
  • =default ve =delete ile niyetin açıkça belirtilmesi
  • Rule of Zero ve std::unique_ptr/std::vector kullanımı
  • Sadece taşınabilir (move-only) tür tasarımı
  • Kod incelemesi: hatalı Rule of Five örneklerinin düzeltilmesi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Value Kategorileri

lvalue, prvalue ve xvalue ifadelerini ayırt edip doğru aşırı yüklemeyi öngörebilirsiniz

✅
std::move Kullanımı

std::move'un bir cast olduğunu bilerek yerinde ve güvenli kullanabilirsiniz

✅
Move Constructor

Kaynağı çalan ve eski nesneyi güvenli bırakan move constructor yazabilirsiniz

✅
Move Assignment

Self-assignment'a dayanıklı move assignment operator uygulayabilirsiniz

✅
noexcept Yönetimi

Taşıma işlemlerini noexcept işaretleyerek konteyner performansını koruyabilirsiniz

✅
Rule of Five

Özel üye fonksiyonların etkileşimini yönetip Rule of Zero tasarımı seçebilirsiniz

✅
Perfect Forwarding

std::forward ile argümanları değer kategorisini bozmadan iletebilirsiniz

✅
Performans Ölçümü

Kopya ve taşıma maliyetini ölçüp optimizasyon kararını veriye dayandırabilirsiniz

Kimler İçin Uygundur?

  • Dinamik bellek
  • dosya tutamacı veya soket gibi kaynakları yöneten sınıflar yazan C++ geliştiricileri
  • performans odaklı kod yazmak isteyenler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Dinamik bellek, dosya tutamacı veya soket gibi kaynakları yöneten sınıflar yazan C++ geliştiricileri ve performans odaklı kod yazmak isteyenler için uygundur.
Eğitimde hangi konular işlenir?
Program 2 gün sürer ve şu modülleri içerir: lvalue, prvalue ve xvalue, Rvalue Referansı ve std::move, Kopya Maliyetini Ölçmek, Perfect Forwarding'e Giriş, Move Constructor Yazımı, Move Assignment Operator, noexcept ve Konteyner Etkileşimi, Rule of Zero, Three ve Five.
Move semantiği her zaman kodu hızlandırır mı?
Hayır. Küçük ve trivially copyable türlerde kazanç yoktur; eğitimde chrono ile ölçüm yapılarak taşımanın ne zaman anlamlı olduğu gösterilir.
Hangi C++ standardı kullanılır?
Örnekler C++17 üzerinde derlenir; move semantiği C++11'den beri mevcuttur ve guaranteed elision gibi C++17 farkları ayrıca ele alınır.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir; programın dışında bir resmi sınav söz konusu değildir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. C++: Using the Move Constructor & Move Assignment Operator E Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

C ve C++C++: Overloading Arithmetic & Relational Operators Eğitimi
Yazılım Geliştirme Eğitimleri

C++: Overloading Arithmetic & Relational Operators Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

C++ aritmetik ve ilişkisel operatör aşırı yükleme eğitimi: +=, ++, ==, <, C++20 <=> spaceship, strict weak ordering ve Fraction, Money, BigInt sınıfları.

Detayları Gör →
C ve C++C++: Stream Operators, Assignment Operators, & Copy-and-Swap Eğitimi
Yazılım Geliştirme Eğitimleri

C++: Stream Operators, Assignment Operators, & Copy-and-Swap Eğitimi

2 günİleriOnline / Yüz Yüze / Hibrit

C++ stream operatörleri, atama operatörü ve copy-and-swap eğitimi: operator<<, operator>>, kendine atama, istisna güvenliği, move atama ve Rule of 5.

Detayları Gör →
C ve C++C++: Using Class Templates Eğitimi
Yazılım Geliştirme Eğitimleri

C++: Using Class Templates Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

C++ sınıf şablonları eğitimi: Stack ve Array konteyner yazımı, tam ve kısmi özelleştirme, CTAD, üye şablonlar, typename ve bağımlı isimler uygulamaları.

Detayları Gör →
C ve C++C++: Using Function Templates Eğitimi
Yazılım Geliştirme Eğitimleri

C++: Using Function Templates Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

C++ fonksiyon şablonları eğitimi: template<typename T>, tür çıkarımı, açık argüman, örnekleme, tam özelleştirme, aşırı yükleme çözümlemesi ve STL ilişkisi.

Detayları Gör →
C ve C++Control Structures in C++: Range-based for Loops Eğitimi
Yazılım Geliştirme Eğitimleri

Control Structures in C++: Range-based for Loops Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

C++ Range-based for Döngüleri eğitimi: Range-based for Sözdizimi ve Güvenli Yineleme ve Ranges konularını uygulamalı örneklerle öğrenin. DVA katılım sertifikalı

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn