C++ bellek ayırma işleci, operator new (size_t s)
biçimindedir. T
türünde bir sınıf nesnesi için new
işlecini aşırı yüklediğimde, işleci new
giriş argümanının (yani size_t s
) tam olarak sizeof(T)
olduğunu garanti eder mi? Evet ise, bu işlev neden giriş argümanı olarak büyüklüğüne ihtiyaç duyuyor?C++ yükleme sırasında boyut bilgileri yeni operatör
12
A
cevap
13
Bir temel sınıftaki yeni operatörü geçersiz kılmak ve türetilmiş sınıf türündeki nesneleri ayırmak için kullanmak mümkündür.
struct Base
{
void* operator new (size_t s) { ... }
int a;
};
struct Derived : public Base
{
int b;
};
Derived* d = new Derived;
Derived
için bellek ayrılırken, Base::operator new(size_t)
kullanılacaktır. Argümanın değeri sizeof(Derived)
olacaktır. Bu argüman olmadan, Derived
türünde bir nesne için doğru miktarda bellek ayıramazız.
İlgili konular
- 1. C++: Veraset ve Operatör Yükleme
- 2. C++ statik operatör aşırı yükleme
- 3. C# Operatör Aşırı yükleme, dizgi yeniden yazma?
- 4. Yükleme sırasında hata Joomla
- 5. Yeni operatör nasıl çalışır?
- 6. INSERT: ERROR: dizi değeri "{" veya boyut bilgileri
- 7. Yeni operatör NULL döndürecek mi?
- 8. Constexpr operatör aşırı yükleme yapmak için yönergeler?
- 9. C++ arkadaş fonksiyonu - operatör aşırı yükleme istream >>
- 10. C++ karmaşık sayı işlemleri için operatör aşırı yükleme
- 11. STL ayırıcılar ve yeni operatör []
- 12. geç yükleme sırasında yeni kaydedilmiş nesneler, çalışmıyor bu sınıf var
- 13. Garip operatör yükleme, "operatör T &() const noexcept {return * _ptr;}"
- 14. CSS geçişi sırasında öğenin boyut değerini göster
- 15. C++ aritmetik eğer operatör
- 16. Pyspark'ı yükleme sırasında sorun oluştu
- 17. Küresel operatör olmadan çıplak metal yeni
- 18. + + operatör olarak ne yapardı? C#
- 19. C++ string + = operatör belleği sonucu
- 20. C# ?? null birleştiren operatör sorusu
- 21. C#, foreach döngüsü sırasında yeni html Div nasıl oluşturulur?
- 22. nasıl yeni bir boyut eklemek için İHALEYE
- 23. C++ yeni işleç - bellek düzeni
- 24. SVN, birleştirme sırasında yeni eklenen dizinleri siler
- 25. Başlarken C Yükleme C#
- 26. HTML5 sesinin yükleme sırasında önceden yükleme/akıştan nasıl önlenmesi gerekir?
- 27. yeni boyut daha küçükse işaretçiyi hareket ettirebilir mi?
- 28. Yükleme sırasında önyükleme arabelleğinde sol ok gizlenemiyor
- 29. WIX: Yükleme sırasında geçici bir dosya kullanma
- 30. Yükleme sırasında .NET yapılandırma dosyaları nasıl değiştirilir?
Bu benim alanım değil, fakat [this] (http://en.cppreference.com/w/cpp/memory/new/operator_new) yardımcı olabilir. – hargasinski