denilen Çok fazla yıkıcılar (ayrıca http://pastebin.com/yw5z2hnG de) kodudur aradı.C++ kadar az nesneler
cevap
Kendi kopya kurucu tanımlamak Eğer diğer nesneleri inşa edilmektedir göreceksiniz:
class X
{
public:
int i;
X(const X&);
X();
~X();
};
X::X(const X& x) : i(x.i)
{
cout << "---copy constructor\n";
}
// ... rest as before
derleyici kendi birini beyan yoksa hiçbir günlüğü gerçekleştiren bir kopya kurucu sağlayacaktır.
+1: Kapalı kopya nedenleridir. – Puppy
Bir daha ayrıntı - Eğer önceden vektörü için yer ayrılması halinde: Ayrıca vektör kopya tüm gördüğünüz gibi
---constructor
+++ copy constructor
***desctructor
---constructor
+++ copy constructor
***desctructor
...
:
int main()
{
vector<X> *vx = new vector<X>;
vx->reserve(5);
....
Sonra şu çıktıyı alırsınız onun depolama alanı yeniden tahsis etmek için gerekli olduğunda onun elemanları - bu nedenle son kopyalamak için 5 kopya kurucular ve yıkıcılar olsun push_back()
Cevabınız çok yardımcı oldu. Mümkün olan yerlerde, sadece vektörleri değil, yer ayırırım. Programım çok daha hızlı çalışıyor. Teşekkürler! – Xolve
- 1. Yığında anonim nesneler, C++?
- 2. C++ nesneler örnekleme dizisi
- 3. C# nesneler için sarıcı
- 4. Mümkün olduğu kadar az parantez içeren güzel baskı ifadesi?
- 5. Nesneler arasında geçiş verileri C#
- 6. C# içinde işlem yapılabilir nesneler?
- 7. uyku-kadar C#
- 8. OpenCL, GTX Titan'da CUDA kadar yavaş iki kat daha az
- 9. CSS bir tablo sütun mümkün olduğunca fazla oda kadar almak ve diğer cols kadar az
- 10. C# işlevi, genel nesneler/varlıklar döndürecek işlev
- 11. Amaç C özel nesneler için% @ override
- 12. C# verim ve sonuna kadar
- 13. C# nesnesinde Object devralınacak kadar?
- 14. C++ Dosyayı Dosyaya Kadar Okuyun
- 15. C++ 0x destekleyen en az iOS sürümü
- 16. sabit nesneler
- 17. Yuvalama Az-CSS'deki AZ-BB'de
- 18. enable_shared_from_this ve yığıntaki nesneler
- 19. Farklı Nesneler İçin KriterlerQuery
- 20. paylaşılan nesneler dosyası nedir?
- 21. karşılaştırılması nesneler
- 22. ayıklanıyor nesneler
- 23. ekleme nesneler
- 24. C++/CLI derleyicisi neden sembollerle bu kadar karışır?
- 25. bb.net'deki taklidi referanslı nesneler
- 26. randomizer yalnızca 99 C++ 'ya kadar üretiyor
- 27. Bir C# uygulaması ne kadar süredir çalışıyor?
- 28. C# TarihSonraki dakikaya kadar olan süre
- 29. C# Recursion Depth - Ne kadar derin gidebilir
- 30. C# özellikleri aslında Yöntemler midir? Bugüne kadar
Birden çok kez yineleniyor ... ama onları bulamıyorum Bu soruyu soran insanların genellikle örtük olarak tanımlanmış kopya kurucularından haberi olmamasına neden olur: p Her zaman cehaletin birisinin öğrenmesini engelleyebildiğini, çünkü birisinin etkili bir şekilde sorgulanmasını engelleyeceğini çok komik buluyorum. –