I have 2 classes: DataObject
and DataElement
. DataObject
holds pointers to (only) DataElement
s, and a DataElement
contains pointers to several types, among which a DataObject
.
This used to be no problem, since I only use pointers to DataObject
s in DataElement
, so a forward declaration of DataObject
in the header of DataElement
is enough.
Now, however, I try to add a destructor to DataElement
, in which I need a delete on a DataObject
. On this the compiler says:
dataelement/destructor.cc: In destructor ‘DataElement::~DataElement()’:
dataelement/destructor.cc:8: warning: possible problem detected in invocation of delete operator:
dataelement/destructor.cc:8: warning: invalid use of incomplete type ‘struct DataObject’
dataelement/dataelement.h:7: warning: forward declaration of ‘struct DataObject’
dataelement/destructor.cc:8: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.
How can I solve this? A forward declaration is apparently not enough, while I cannot include the complete header for DataObject
, since that gives me a circular dependency again.
Thanks in advance!