我有与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/