在虚幻项目中,我有一行:
class USpringArmComponent* CameraBoom
和
class UCameraComponent* FollowCamera
我从来没有在c++中见过这种语法。这是什么意思?
这是一个详细的类型说明符:
https://en.cppreference.com/w/cpp/language/elaborated_type_specifier
这只是告诉编译器UCameraComponent
是一个类。没有别的。这就像在C中,将struct
放在任何结构变量声明之前。
当您有一些混乱的代码时,这种语法很有用(或者向开发人员传达它是一个口头的类(。
例如:
class counter
{
// bla bla bla...
};
void foo()
{
int counter = 0; // Oops someone declared a variable called counter.
// How am I going to declare a variable of type `counter`?4
// counter actual_counter; // Syntax error: expected ';' after expression.
//Because counter is a variable
class counter actual_counter; // You prepend `class` to the deceleration
}