Haftalık Videolar 12 – “Rule of Five” ve “Rule of Zero”

Merhaba sevgili yazılımperver dostlarım, bu yazımda sizler ile bir video paylaşıyor olacağım (uzun süredir paylaşmadığımı fark ettim de).

Video’nun konusu “Rule of Five”. Modern C++ öncesinde de (C++ 11 öncesi), bunun muadili olan “Rule of Three” bulunmaktaydı. Neydi bu kural, isterseniz önce ona bir bakalım:

“If a class defines any of the following then it should probably explicitly define all three: destructorcopy constructorcopy assignment operator.”

Mealen, eğer bir sınıfınızda, “destructor”, “copy constructor” ya da “copy assign operator”‘lerden birisini tanımlıyorsanız, muhtemelen diğer ikisini de tanımlamalısınız. Çünkü, bunlardan biri ile muhtemelen sınıfınız, kaynakları yönetmesi gereken bir iş yapmakta ve bunun olası bütün durumlarda, doğru bir şekilde yapılabilmesi için diğer iki operasyon ile bunun sağlanması gerekmektedir. Diğer ifade ile “Deep Copy” yapılması gerekebilir. Peki, tanımlanmazsa ne olur? “Implicit” yani otomatik olarak tanımlanmış bu operasyonlar, “shallow copy” yapıyor olacaklar ve asıl kaynaklar muhtemelen kopyalanmıyor olacak. Bu iki kavramı ifade eden güzel bir görseli aşağıya ekliyorum:

Gelelim “Rule of Five”‘a, bu da üçlü kuralın “move” operasyonlarını da kapsayacak şekilde genişletilmiş hali. Temelde arkasında yatan prensip aynı. Neyse, yazıyı daha fazla uzatmadan ilgili videoyu aşağıya ekliyorum, çok uzun bir video olmamasına karşın, bence bu kavramı çok güzel ve sade bir şekilde aktarmış.

Bu arada yine bu konu ile ilgili izlediğim bir videoyu daha buraya ekliyorum, güzel seyirler.

Bu konuya ilişkin daha detaylı bilgi almak için aşağıdaki yazıma da göz atabilirsiniz. Bol kodlu günler:

Haftalık C++ 57 – Üç/Beş Kuralı, Nesne Oluşturma

Kaynaklar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.