Ti basta una normale forward declaration:
codice:
#pragma once
#include <vector>
#include <string>
#include "wm4matrix4.h"
#include "BaseObject.h"

// Forward declaration
class CNodeBase;

namespace Wm4
{
        // Ora il typedef
	typedef Pointer<CNodeBase> CNodeBasePtr;
}

// Ora la dichiarazione vera e propria
class CNodeBase : public CBaseObject
{
public:
	CNodeBase(void);
	virtual ~CNodeBase(void);
	virtual void Remove(const CNodeBase& pNode){};
	virtual void Insert(CNodeBase* pNode){};
	virtual CNodeBase* GetAt(int pos){return NULL;};


	virtual void SetParent(CNodeBase* pNode){};


	virtual Wm4::Matrix4f* GetmatrixT(){return NULL;};
	virtual void SetMatrixT(Wm4::Matrix4f* pMatrix){};
	virtual void SetMatrixT(double pMatrix[16]){};
	std::string m_strName;
};