所以,我遇到了一个我不太了解的有趣方法签名,它遵循以下方式:
void Initialize(std::vector< std::string > & param1, class SomeClassName * p);
Run Code Online (Sandbox Code Playgroud)
我不明白的是"class"关键字被用作参数,为什么会出现?是否有必要指明或纯粹是肤浅的?
Jam*_*lis 16
这是该课程的前瞻性声明.它实际上是一样的
class SomeClassName;
void Initialize(std::vector< std::string > & param1, SomeClassName * p);
Run Code Online (Sandbox Code Playgroud)
在许多情况下,前瞻性声明是有用的; 在这个对另一个问题的回答中,你可以和不能用前瞻性声明做一整套事情.