Проблема циклических ссылок C ++

У меня есть 2 класса:DataObject а такжеDataElement. DataObject содержит указатели на (только)DataElementс иDataElement содержит указатели на несколько типов, среди которыхDataObject.

Раньше это не было проблемой, так как я использую только указатели наDataObjectвDataElementИтак, предварительная декларацияDataObject в заголовкеDataElement достаточно.

Теперь, однако, я пытаюсь добавить деструктор кDataElement, в котором мне нужно удалить наDataObject, На это компилятор говорит:

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.

Как я могу решить это? Предварительной декларации явно недостаточно, хотя я не могу включить полный заголовок дляDataObject, поскольку это снова дает мне круговую зависимость.

Заранее спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос