这里是整个代码获取错误:编译与C++错误和命名空间
Engine.h
#ifndef ENGINE_H
#define ENGINE_H
#include "DXManager.h"
namespace XEngine
{
class Engine
{
};
}
#endif
DXManager.h
#ifndef DX_MANAGER_H
#define DX_MANAGER_H
namespace XEngine
{
class Engine; // forward declaration
class DXManager
{
public:
void run(Engine *engine);
};
}
#endif
DXManager.cpp
#include <iostream>
#include "Engine.h"
#include "DXManager.h"
using namespace XEngine;
void DXManager::run(Engine *engine)
{
std::cout<<"DXManager::run"<<std::endl;
}
随着这些代码30行,我得到20级这样的错误:
'XEngine' : a namespace with this name does not exist
'XEngine' : a symbol with this name already exists and therefore this name cannot be used as a namespace name
syntax error : identifier 'Engine'
很显然,我失去了一些重要的东西在这里。我究竟做错了什么?
注意:我知道循环依赖是一件坏事,但在我个人的情况下,我认为它是相关的。
编辑完成后,您的代码将在MSVC 10上编译。它必须是另一段代码中的另一个错误。 – 2011-04-04 02:24:37
确实。我想我没有对我的真实代码做适当的修改。非常感谢你的帮助! – 2011-04-04 02:28:52
错误来自'dxmanager.cpp'还是来自另一个包含'engine.h'和/或'dxmanager.h'的编译单元? – greatwolf 2011-04-04 02:46:04