Revision: 54243
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 16, 2011 09:52 by huanglx
Initial Code
class Number {
public:
Number() { cout << "number constructor" << endl; }
~Number() { cout << "number destructor" << endl; }
};
class Photo {
public:
Photo() { cout << "photo constructor" << endl; }
~Photo() { cout << "photo destructor" << endl; }
};
class Voice {
public:
Exp() { throw -1; }
~Exp() {}
};
class Entry {
public:
Entry() : m_number(new Number()),
m_photo(new Photo()),
m_voice(new Voice())
{}
~Entry() {}
private:
const auto_ptr<Number> m_number;
const auto_ptr<Photo> m_photo;
const auto_ptr<Voice> m_voice;
};
try {
Entry * entry = new Entry();
} catch ( int e ) {
cout << "m_number and m_photo have been cleaned up" << endl;
}
Initial URL
Initial Description
An example showing how to solve the memory leak problem in constructor
Initial Title
Memory Leak in Constructor (C++)
Initial Tags
c++
Initial Language
C++