- Katılım
- 27 Aralık 2008
- Mesajlar
- 432,578
- Reaksiyon puanı
- 0
- Puanları
- 0
* 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
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
