我有与this类似的问题,但不完全相同。

假设我们有2个头文件和一个main.cpp。
在第一个头文件中,我们有:

  namespace Logic
  {
    class GameManager;
  }


在第二个标题中:

#include "first_header.h"
class Logic::GameManager
{
public :
    void init();
    void run():
};


在main.cpp中,我有:

#include "first_header.h"
int main()
{
   Logic::GameManager gm;
   gm.init();
   gm.run();
}


我收到此错误,直到我在main.cpp中包含第二个标头为止:

'gm' uses undefined class 'Logic::GameManager'


-使用名称空间和类的这种方式正确吗?

-有一个更好的方法吗?

谢谢。

最佳答案

重新打开名称空间以定义类。

namespace Logic {

class GameManager
{
public :
    void init();
    void run():
};

}


并包含main.cpp中的第二个标头,而不是第一个标头。除非直接#include进行编译,否则编译器无法找到类定义。

关于c++ - 在头文件中定义 namespace 类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30553387/

10-09 02:36