我正在查看cocos2dx c ++源代码,其中有很多地方使用
class Classname;
在CCNode.h第43行中的e-g
class CCCamera;
Classname是他们正在使用的类的名称,后来我没有看到任何我之前从未见过的引用。
我想知道这意味着什么。
答案 0 :(得分:7)
这是一个前向声明,因此实际导入发生在.cpp文件而不是头文件中。这是C ++ OOP中的常见做法。
要获得一个好的解释,请参阅此帖并提出类似的问题 C++ Forward declaration
当您做出前瞻性声明时,您正在通知编译器您打算事先使用某些内容。如上面链接中所声明的那样,重要的收获是前向声明会破坏循环引用并减少编译器构建时间。