You use forward declarations, but you include files .hrecursively anyway . The point of the front declarations is that you do not need to include the headers of the forward declared class, thereby breaking the interdependence.
, .
:
SingleListIterator.h:
class SingleList;
class SingleListIterator {
};
SingleList.h:
#include "SingleListIterator.h"
class SingleList {
};
SingleListIterator.cpp:
#include "SingleListIterator.h"
#include "SingleList.h"
SingleList.h:
#include "SingleList.h"
, , , (.cpp).