 <p>C++ friendship works the other way: if <code>GameComponent</code> declares <code>Position</code> as a friend it means that <code>Position</code> has access to all the private methods of the <code>GameCompenent</code>. What you need is exactly the opposite: call <code>Position</code> private methods from <code>GameComponent</code></p> <p>So if <code>Position::displayPositions()</code> is the private method of the Position class that you want to access from GameComponent then you can declare <code>GameComponent</code> as a friend of <code>Position</code>:</p> <pre><code>class Position { friend class GameComponent; ... }; </code></pre>