title: class* argument displayed as <error-type>*
body: <p>I have this class:</p>
  <pre><code>#pragma once
  #include &lt;thread&gt;
  #include &quot;Game.h&quot;
  
  class CPhysics {
      CGame *mGame;
      //[...]
  
  public:
      CPhysics(CGame *game);
  
      //[...]
  };
  </code></pre>
  <p>I pass the <code>CGame</code> instance to the constructor of <code>CPhysics</code> like this:</p>
  <pre><code>#include &quot;Game.h&quot;
  
  CGame::CGame() {
      //[...]
      mPhysics = new CPhysics(this);
  }
  </code></pre>
  <p>But the compiler does not know what to do and gives me <code>&lt;error-type&gt; *game</code> instead of <code>CGame *game</code>. I want to pass a pointer to the <code>CGame</code> instance. What will be sent if I remove the asterisk? I'm a little bit confused.</p>
  <p><a href="https://i.stack.imgur.com/Xte3U.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Xte3U.png" alt="The error" /></a></p>
  <p><strong>EDIT:</strong> The actual error is as follows: Instead of <code>CPhysics(CGame *game)</code> constructor it wants to use <code>CPhysics(CPhysics &amp;&amp;)</code>. But <code>CGame *const</code> cannot and shall not be converted to <code>const CPhysics &amp;</code>. I'm guessing this is due to the error-type.</p>