声明类和命名空间的问题

时间:2011-05-10 12:08:40

标签: c++ namespaces

我宣布这样的课程:

#include "BindableInterface.h"
#include "../LuaHelper.h"

#include <map>
#include <string>

namespace utils{
    class CLuaHelper;
};

namespace zel{
    namespace utils{

        class CAPIBindManager
        {
            typedef std::map<std::string, CBindeableInterface*> t_exposedClassMap;
            t_exposedClassMap m_classesToExpose;
            utils::CLuaHelper* m_luaHelper;
        public:
            bool exportClasses(const unsigned char* data);
            bool executeLuaChunk(const std::string fileName, const std::string funtionName);
            bool addClassToExpose(CBindeableInterface* bindableInterface, const std::string alias);
            CAPIBindManager(void);
            ~CAPIBindManager(void);
        };
    };
};

但是我得到了一个编译错误,即CLuaHelper不是zel :: utils的成员。 CLuaHelper声明为utils :: CLuaHelper(没有zel)我如何声明这个类。 AFAIK,前瞻声明可能会解决这个问题

任何想法??

1 个答案:

答案 0 :(得分:5)

使用::utils::CLuaHelper区分两个utils名称空间。