Why don't you try something like this?
Code:
class CLASS_1{
public:
DataClass *data;
CLASS_1(){
data = NULL;
}
~CLASS_1(){
delete data;
data = NULL;
}
};
class CLASS_2{
public:
DataClass *data;
CLASS_1 *class1;
CLASS_2(){
this->data = new DataClass();
class1 = new CLASS_1();
class1->data = this->data;
}
~CLASS_2(){
delete data;
data = NULL;
delete class1;
class1 = NULL;
}
};
If you leave that line unchanged and allocate a new DataClass in CLASS_1's constructor, then use it instead of allocating a new one in CLASS_2's constructor.
Code:
class CLASS_1{
public:
DataClass *data;
CLASS_1(){
data = new DataClass();
}
~CLASS_1(){
delete data;
data = NULL;
}
};
class CLASS_2{
public:
DataClass *data;
CLASS_1 *class1;
CLASS_2(){
this->data = new DataClass();
//class1 = new CLASS_1();
this->data = class1->data;
}
~CLASS_2(){
delete data;
data = NULL;
delete class1;
class1 = NULL;
}
};
In short, to fix your problem, you have to allocate only one DataClass.
Is that what you tried?