Hayatimdegisti.com kişisel gelişim ritmotrans telkinli Cd'leri

Hayatimdegisti.com kişisel gelişim ritmotrans telkinli Cd'leri (http://www.hayatimdegisti.com/forum/index.php)
-   Sözlük (http://www.hayatimdegisti.com/forum/sozluk/)
-   -   placement new syntax (http://www.hayatimdegisti.com/forum/sozluk/210187-placement-new-syntax.html)

bluemoon24 16-01-2009 03:16 AM

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 &ltnew&gt 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&ltvoid*&gt



* // 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-&gt~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.