虚幻引擎射击游戏示例中"类DataType*变量"中的"类"是什么

num*_*l25 11 c++ unreal-engine4

我最近下载了针对虚幻4引擎的射击游戏,我只是试图挑选c ++,但我的c ++不是最好的我注意到一个名为变量的变量

class AShooterCharacter* MyPawn; 
Run Code Online (Sandbox Code Playgroud)

在头文件中设置 ShooterWeapon.h

我试图了解这class部分是什么.

[编辑]我注意到有人贬低了我的问题所以我把它改成了一个问题.我希望人们愿意帮助而不是降低我的问题.没有一个愚蠢的问题:)...特别是在编程方面

Lig*_*ica 8

如果AShooterCharacter已经在范围内,那么它可能基本上没有任何意义.

class AShooterCharacter* MyPawn;
// ^ the same as just:
// AShooterCharacter* MyPawn;
Run Code Online (Sandbox Code Playgroud)

在C中,当命名结构类型时,您必须使用struct关键字:

struct Foo
{
   int x, y, z;
};

struct Foo obj;
Run Code Online (Sandbox Code Playgroud)

在C++中,您不需要这样做,因为Foo它本身就是一个可命名的类型:

Foo obj;
Run Code Online (Sandbox Code Playgroud)

但如果你愿意,你仍然可以struct Foo.

这同样适用于class语义语法和语义的定义结果.

它只有两次有所作为.

用法1:消除歧义(各种)

您可以使用它来指定您希望在其他名称隐藏时引用范围内类型名称,例如:

class Foo {};

int main()
{
   const int Foo = 3;

   // Foo x;     // invalid because `Foo` is now a variable, not a type
   class Foo x;  // a declaration of a `Foo` called `x`;
}
Run Code Online (Sandbox Code Playgroud)

但如果你发现自己"需要"这个,那么在我看来,你有更大的问题!

用法2:转发声明

否则,它与执行此操作相同:

class Foo;   // a forward declaration
Foo* x;
Run Code Online (Sandbox Code Playgroud)

可以说,如果您要转发声明类型并立即声明指向该类型对象的指针,它会保存一行代码.

但这不是常见的风格.