<分区>
我正在研究给我的代码,我看到:
AFPSGameMode::AFPSGameMode(const class FPostConstructInitializeProperties& PCIP)
: Super(PCIP) { }
我特别好奇 class
关键字的用法。这是标准的 C++ 吗?如果是,那意味着什么?
谢谢。
标签 c++ syntax parameters
<分区>
我正在研究给我的代码,我看到:
AFPSGameMode::AFPSGameMode(const class FPostConstructInitializeProperties& PCIP)
: Super(PCIP) { }
我特别好奇 class
关键字的用法。这是标准的 C++ 吗?如果是,那意味着什么?
谢谢。
最佳答案
这里允许使用 class
关键字,很少看到它放在这里,因为它可以完全省略(如果这个类之前已经声明过)或替换为 前向声明:
void foo(const class FPostConstructInitializeProperties& p){ ... }
相当于:
class FPostConstructInitializeProperties; // <-- forward declaration
void foo(const FPostConstructInitializeProperties& p){ ... }
不要对奇怪的命名约定感到困惑。您提供的片段表达了这样的内容:
class B{
public:
B(){ }
B(const B& b){ };
};
class A{
public:
B my_b;
A(const class B& b) : my_b(b) { } // <-- class keyword in ctor's param decl.
};
可以像这样使用(但我想它已经足够清楚了):
int main() {
B b;
A a(b);
}
关于c++ - 函数签名中的“class”关键字 - 它是标准 C++ 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22783233/