Article ID: 155292
Article Last Modified on 12/10/2003
ClassA Constructor ClassB Constructor ClassB DestructorThe destructor for ClassA is not called.
ClassC() {
mClassB = new ClassB("Goodbye");
}
170365 INFO: Visual Studio 97 Service Packs - What, Where, and Why
/* Compile options needed: /D_DEBUG
*/
#include <afx.h>
#include <iostream.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
class ClassA {
public:
ClassA(const char *) { cout<< "ClassA Constructor" << endl; }
~ClassA() { cout<< "ClassA Destructor" << endl; }
};
class ClassB {
public:
ClassB(const ClassA&){ cout << "ClassB Constructor" << endl;}
~ClassB() { cout << "ClassB Destructor" << endl;}
};
class ClassC {
public:
ClassB *mClassB;
ClassC()
:mClassB(new ClassB("Goodbye") ) // Error
{
// mClassB = new ClassB("Goodbye"); // Workaround
}
~ClassC() { delete mClassB; }
};
void main() {
ClassC TestClassInstance;
}
Keywords: kbbug kbfix kbvs97sp3fix kbvc600fix kbcodegen kbcpponly kbcode kbcompiler KB155292