C++使用类Classname;

Sam*_*Sam 5 c++ oop class cocos2d-x

我正在查看cocos2dx c ++源代码,其中有很多地方使用它们

class Classname;
Run Code Online (Sandbox Code Playgroud)

例如在CCNode.h第43行

class CCCamera;
Run Code Online (Sandbox Code Playgroud)

Classname是他们正在使用的类的名称,后来我没有看到任何我之前从未见过的引用.

我想知道这意味着什么.

Pau*_*ton 7

这是一个前向声明,因此实际导入发生在.cpp文件而不是头文件中.这是C++ OOP中的常见做法.

有关解释的详细信息,请参阅此帖子,其中包含类似的问题 C++ Forward声明

当您进行前向声明时,您将通知编译器您打算事先使用某些内容.如上面链接中所声明的那样,重要的收获是前向声明会破坏循环引用并减少编译器构建时间.