c++中奇怪的语法意味着什么



在虚幻项目中,我有一行:

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
}

最新更新