如何修复虚幻引擎4中的“不允许指针指向不完整的类类型”错误

时间:2019-05-16 03:43:42

标签: c++ pointers unreal-engine4

我正在尝试使用Sharan Volin所著的“通过使用虚幻引擎4创建游戏来学习C ++”这本书来学习C ++。到目前为止,我一直在跟踪示例,但是尽管我从文本中逐字键入所有内容,但我仍然卡在该错误中。我有什么想念的东西吗?

我尝试查看此练习是否还有其他指南或Git Repos,但没有运气。其他有关错误代码E0393(我得到的错误)的Stack用户问题似乎无济于事,因为我在Avatar.h文件中包含了Avatar.cpp文件。

这是Avatar.cpp文件中段中的代码,给我一个错误,特别是后两行以PlayerInputComponent->开头

// Called to bind functionality to input
void AAvatar::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
check(PlayerInputComponent);
PlayerInputComponent->BindAxis("Forward", this, &AAvatar::MoveForward);
PlayerInputComponent->BindAxis("Strafe", this, &AAvatar::MoveRight);
}

这是Avatar.h文件中存在的一些代码,只有最后四行是我输入的内容。

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);
};

最终结果应允许我分别按“ W”和“ D”将虚幻项目中的化身向前和向右移动。但是,在Avatar.cpp文件中,出现错误E0393 pointer to incomplete class type is not allowed。我也从来没有让该项目在虚幻编辑器中启动。

2 个答案:

答案 0 :(得分:2)

只需转到头文件“ Avatar.h”,然后输入#include“ Components / InputComponent.h”

答案 1 :(得分:0)

在您的cpp文件中,您已向前声明了该类。您需要在.cpp文件中包含实际定义的include。 因此,您需要为UInputComponent提供include。

在组件文档here上,您将在页面底部看到引擎文件中的位置。

#include "Runtime/Engine/Classes/Components/InputComponent.h"