17
Oct
2021

Smart Pointers (5/6): std::weak_ptr

Before talking about the std::weak_ptr, it would be nice to talk about weak and strong type pointers. As an example of a strong type pointer, std::shared_ptr holds the owner and increases its reference counter. It means every strong type pointer keeps alive its resource individually. This feature causes a big problem sometimes. We will talk...
Read More
14
Oct
2021

Smart Pointers (3/6): std::shared_ptr

Automatic memory management alias garbage collector provides release of memory which was allocated by the program, but, then, is no longer referenced. C++ has no explicit garbage collector mechanism. Quotation from Bjarne Strousb: “I don’t like garbage. I don’t like littering. My ideal is to eliminate the need for a garbage colletor by not producting...
Read More
14
Oct
2021

Smart Pointers (1/6): std::unique_ptr

If you don’t want to change your raw pointer habits and want to get coverage of smart pointers; then the standard libraries’ unique pointer is the most convenient choice! Std::unique_ptr exclusively manages the resource during its lifetime. Here are some features of the unique pointers with proofs and codes! 1. Std::unique_ptrs are the same size...
Read More
14
Oct
2021

Smart Pointers (0/6)

Before talking about smart pointers, I would like to talk briefly about non-smart pointers also known as raw pointers. If we create a primitive type such as “int” or an object on the heap, the memory responsibilities belong to us. Ignoring the memory control mechanism can cause some problems such as having a dangling pointer,...
Read More
20
Oct
2020

Stage-d (final)

Görevler: Yardımcı global fonksiyonların ve yapıların belirlenmesi ve tanımlanması Test için fonksiyonların tanımlanması Test Bu kısımda Master’ın taleplerini application-layer’da kendimiz yazarak test edeceğiz. Uygulamanın şuanki hali için application-layer main dosyamızdır. Yardımcı global fonksiyonlar, geliştirilen uygulamanın data parsing işlemlerini, dönüşüm işlemlerini ve bunun gibi sıklıkla uygulama katmanında ya da ara katmanlarda ihtiyaç duyulan fonksiyonlardır. Bu fonksiyonları belirleyebilmek tecrübe...
Read More
20
Oct
2020

Stage-c

Görevler: Kontrol sisteminin belirlenmesi Gerekli bildirimlerin ve tanımlamaların yapılması Kontrol fonksiyonlarının prototiplerinin oluşturulması Kontrol fonksiyonlarının tanımlanması Oluşturduğumuz nesneleri kontrol etme vakti geldi. Nesne tabanlı programlama yapabilmek için struct’lar ile oluşturduğumuz tüm nesneler işimizi kolaylaştıracak. Uygulamamızın temel isteklerine tekrardan bakacak olursak eğer bizden index numarası varsa sub-index numarası vererek okuma ve yazma talebinde bulunacak bir girişimi...
Read More
20
Oct
2020

Stage-b

Görevler: Index objeleri için struct oluşturulması Sub-index objeleri için struct oluşturulması Objelerin type karakteristikleri için enum tanımlanması Sub-index ve index struct’ları tanımlanması Objeleri tanımlayıp ilk değerlerini atadıktan sonra her objeyi ayrı ayrı ifadelendirmek gerekmektedir. Tablodan da görüleceği gibi her objenin özelliği, tipi, hangi konumda olduğu (index ve sub-index numarası) bilgileri bulunmaktadır. Bu ifadeleri her objeye...
Read More