为什么不在.h文件中的.cpp文件中的所有变量?

时间:2017-02-21 22:47:35

标签: c++

所以我在这里查看虚幻文档: https://docs.unrealengine.com/latest/INT/Programming/QuickStart/3/index.html

在第2步中,他们在.h文件中创建了一个 float RunningTime ,并在第3步的cpp文件中使用它,据我所知。我不明白的是在cpp文件中,他们创建了 FVector NewLocation 浮动DeltaHeight ,但他们没有将这些添加到.h。

为什么.h中的RunningTime和其余的都没有? .h文件中的数据有什么特别之处?

谢谢

编辑:

我理解范围方面。我很抱歉不清楚。我的困惑是没有在任何地方设置RunningTime。它在tick函数中用于cpp,但值是......什么?我在虚幻引擎中运行它,它可以工作,但什么是(theValueOf)RunningTime?

1 个答案:

答案 0 :(得分:0)

您指出的本教程的目的是创建类AFloatingActor,然后可以实例化它。 RunningTime变量是类的接口的一部分,因为它被定义为public

public:
    float RunningTime;

可以在课外访问它(查看公共/私有类成员和方法)。

与此相反,FVector NewLocationfloat DeltaHeight是仅在方法AFloatingActor::Tick中使用的局部变量。因为它们只在这个成员(函数)中使用,而在类中没有其他任何地方,它们都不是类接口的一部分,所以它们不需要是类变量。

如果它们位于.h文件中(因此是一个类变量),那么它们将在实例化类时创建,并且只要该类保持活动状态即可。但是没有必要这样做,因此它们是在调用AFloatingActor::Tick时创建的,它们会发挥作用然后被破坏,因为它们是该方法的局部变量。

这也是第二个问题的答案" .h文件中的数据有什么特别之处?"。

总结一下: 在类的.h文件中,您编写类接口。它由

组成
  • 公共变量/方法:这是该类的变量/方法,可以在类
  • 之外访问
  • 私有变量/方法:此变量/方法仅在此类中使用,不能从外部访问,并与此类中的所有方法共享
  • 受保护的变量/方法:请查看此处SO: private vs. protected variables

在类的.cpp文件中编写类实现(每种方法的实现)。

有关详细信息,请查看示例here