#include confusion
<p>in order to avoid an include circle, I have replaced an #include that was previously in a classes header into its cpp file. I then placed a forward declaration into the header. </p>

<p>This solved my problem, however, the source file no longer seems to be able to access the members of the included file in the cpp file. Why is this? and what is the solution?</p>

<p>EDIT - real code below:</p>

<p>header:</p>

<pre><code>#ifndef BULLET_H
#define BULLET_H

#include "BoundingSphere.h"
#include "helperMethods.h"

class GameObject;

class Bullet : public GameObject
{
private:
float velocity;
float distance;
D3DXVECTOR3 firedFrom;
BoundingSphere bSphere;

public:
Bullet(D3DXVECTOR3 position, D3DXVECTOR3 rotation, float velocity, D3DXCOLOR     colour);
BoundingSphere BulletSphere();//change this to simply use position
void Update();
};

#endif
</code></pre>

<p>source:</p>

<pre><code>#include "Bullet.h"
#include "GameObject.h"

Bullet::Bullet(D3DXVECTOR3 position, D3DXVECTOR3 rotation, float velocity, D3DXCOLOR colour) 
: bSphere(BoundingSphere(position, 0.01f))
{
//Model = content.Load&lt;Model&gt;("Models\\basicMesh");
//Texture = content.Load&lt;Texture2D&gt;("Textures\\basicMesh");

distance = 0.0f;

Scale(D3DXVECTOR3(0.25f, 0.1f, 0.1f));// error

Colour(colour); //error

firedFrom = position;

Rotation() = rotation; // error
this-&gt;velocity = velocity;
}

BoundingSphere Bullet::BulletSphere()
{
return bSphere;
}

void Bullet::Update()
{
Position(D3DXVECTOR3Helper.PointOnXYCircle(firedFrom, distance, Rotation().z)); //error
bSphere.Centre(Position());
distance += velocity;
}
</code></pre>

<p>The first error is GameObject: base class undefined.</p>

<p>all the subsequent errors are "Error: Identifier "whatever" is undefined. They are all getters that are public and in gameobject. </p>
