title: How to fix "Pointer to Incomplete class type is not allowed" error in Unreal Engine 4
body: <p>I'm trying to learn C++ using a book called "Learning C++ by Creating Games with Unreal Engine 4" by Sharan Volin. Up to this point, I had been following the examples, but I got stuck at this error, despite the fact that I'm typing everything verbatim from the text. Is there something I am missing or not understanding?</p>
  
  <p>I've tried to see if there were any other guides or Git Repos on this exercise, but had no luck. Other Stack user questions regarding error code E0393 (the error I'm getting) don't seem to help, as I have the <code>Avatar.h</code> file included in the <code>Avatar.cpp</code> file. </p>
  
  <p>This is the code in the segment in the <code>Avatar.cpp</code> file giving me an error, specifically the last two lines that start as <code>PlayerInputComponent-&gt;</code></p>
  
  <pre><code>// Called to bind functionality to input
  void AAvatar::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
  {
  Super::SetupPlayerInputComponent(PlayerInputComponent);
  check(PlayerInputComponent);
  PlayerInputComponent-&gt;BindAxis("Forward", this, &amp;AAvatar::MoveForward);
  PlayerInputComponent-&gt;BindAxis("Strafe", this, &amp;AAvatar::MoveRight);
  }
  </code></pre>
  
  <p>This is some of the code present in the <code>Avatar.h</code> file, with only the last 4 lines being what I was instructed to type in.</p>
  
  <pre><code>public: 
      // Called every frame
      virtual void Tick(float DeltaTime) override;
  
      // Called to bind functionality to input
      virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
  
      //New! These 2 new member function declarations
      //they will be used to move our player around!
      void MoveForward(float amount);
      void MoveRight(float amount);
  };
  </code></pre>
  
  <p>The final result should allow me to move an avatar in the Unreal Project forward and to the right upon pressing "W" and "D" respectively. However, in the <code>Avatar.cpp</code> file, I get the error <code>E0393 pointer to incomplete class type is not allowed</code>. I also never get the project to launch in the Unreal Editor.</p>