在头文件中定义命名空间类

时间:2015-05-31 02:57:56

标签: c++ class namespaces

我遇到与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'

- 这种使用命名空间和类的方式是否正确?

- 有更好的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

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

(?![\]\)]),

并在namespace Logic { class GameManager { public : void init(); void run(): }; } 中添加第二个标题,而不是第一个标题。除非直接main.cpp'd。

,否则编译器无法找到类定义