Article ID: 168385
Article Last Modified on 9/23/2003
#include <iostream>
using namespace std;
class A {
public:
A(){}
~A(){}
virtual void A1() {}
};
class B {
public:
B();
virtual ~B();
int marker;
};
B::B() {
marker = 10;
cout << "In constructor, this is " << this << endl;
}
B::~B() {
cout << "In destructor, this is " << this << endl;
if ( this->marker != 10)
cout << "Data has been corrupted" << endl;
}
class C: public A, public B
// class C: public A, virtual public B // Workaround
{public:
C(){}
~C(){}
};
int main() {
C * pC;
pC = new C[2];
delete [] pC;
return 0 ;
}
/* Sample Program Output */
In constructor, this is 00460DA8
In constructor, this is 00460DB4
In destructor, this is 00460DB0
Data has been corrupted
In destructor, this is 00460DA4
Data has been corrupted
Keywords: kbfix kbbug kbcompiler KB168385