use of undefined type (circular dependency)

OK guys, so I have 2 classes that inherit from the same class ADHItem

  • ADHUsableItem
  • ADHUsableItemMod

Now UsableItem obviously needs references to UsableItemMod because it needs to use them as subitems. And UsableItemMod needs a reference to UsableItem because ItemOwner and such.

But when both headers include each other: circular dependency.
However, forward declaring doesn’t seem to work. From both directions.

Here’s my current code; Please tell me what’s wrong in here

Compile logs:

Forward declaration doesn’t work when you use the forwarded class in the header file.
Move the implementation of UseOnce and add the include only into the .cpp file.
Same thing with ADHUsableItemMod::SetItemOwner.