![]() |
placement new syntax * c++'da* new keyword'ü ile dinamik olarak yaratılan objelerin hafızanın istenen bir bölgesinde yaratılabilmesı için gerekli olan ve daha çok sistem programlama mantığına yönelik olmazsa olmaz fasilitelerden biri. kullanmak için #include <new> header'i eklenmelidir. örnek: char array [sizeof * ] // örnek için yaratılmış stack alanı. bu genelde dinamik oluşturulmuş daha büyük bir alandır. void* address = reinterpret_cast<void*> * // new keywordü "void*" tipi adres tanımlaması istediği için cast yaptık nispeten nizami olsun diye. classname* p = new * classname * // evet "new" bu şekilde de kullanılabiliniyor. adı üstünde "placement new syntax". void* tipi bir adres lokasyonu new keywordüyle yukardaki şekilde yazılarak kullanılır. geri dönüş değeri olan "classname*" tipindeki değişken "address*" tipi ile aynı hafıza lokasyonunu işaret ederler. ayrıca: bu şekilde yaratılmış class objelerinin yokedilmesinde destructor'un çağrılması da isteniyorsa, destructor'un özel olarak çağrılması gerekir. ki destructor'un özel olarak çağrıldığı nadir durumlardan birine sebebiyet vermektedir. /*yukardaki örneğe istinaden*/ p->~classname * // şeklindedir o da. Kaynak: EkşiSözlük |
WEZ Format +3. Şuan Saat: 12:17 AM. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.