आपको क्या लगता है? क्या यह सही है या मेमोरी लीक हैं?क्यूलिस्ट और साझा_ptr
स्रोत:
#include <QList.h>
#include <boost/shared_ptr.hpp>
#include <iostream>
class A {
private:
int m_data;
public:
A(int value=0) { m_data = value; }
~A() { std::cout << "destroying A(" << m_data << ")" << std::endl; }
operator int() const { return m_data; }
};
int _tmain(int argc, _TCHAR* argv[])
{
QList<boost::shared_ptr<A> > list;
list.append(boost::shared_ptr<A>(new A(6)));
std::cout << int(*(list.at(0))) << std::endl;
return 0;
}
आउटपुट:
6
destroying A(6)
एक sidenote के रूप: 'QList का उपयोग नहीं करते' जहां 'sizeof (टी)> sizeof (शून्य *)' (और 'sizeof (shared_ptr ) == 2 * sizof (शून्य *)', आमतौर पर), चूंकि उस मामले में 'क्यूलिस्ट' सूची में तत्वों की प्रतिलिपि बनायेगा (जैसा मूल्य के आधार पर इसे पकड़ने के विपरीत)। इसके बजाए 'क्यूवेक्टर' या 'std :: वेक्टर' का प्रयोग करें। –