模棱两可的类命名空间问题
Posted
技术标签:
【中文标题】模棱两可的类命名空间问题【英文标题】:Ambiguous Class Namespace Issue 【发布时间】:2011-03-13 20:55:54 【问题描述】:我...觉得这个问题真的很傻,但我不知道如何解决这个问题。
这是我的代码(Objective-C++)的一个小片段:
#include "eq/eq.h"
namespace eqOther
class Window : public eq::Window //<-- Error occurs here
public:
Window( eq::Pipe* parent ) : eq::Window( parent )
void popup();
protected:
virtual ~Window()
virtual bool processEvent( const eq::Event& event );
private:
;
我得到的错误是:Use of 'Window' is ambiguous
,它说它在 X.h 中声明为 typedef XID Window
,在 window.h 中声明为 class eq::Window
,这是它的超类。
我要声明的课程应该在namespace eqOther
是吗? eqOther::Window
与 eq::Window
不同!?
我觉得自己太笨了,但我只是不明白我做错了什么......
【问题讨论】:
您收到警告还是错误消息? 我会使用::eq::Window
来确定。但我也看不出你做错了什么。它抱怨您的类型名称与 rood 命名空间中定义的 typedef 冲突。您是否在 eqOther
的命名空间声明中包含了 X.h
?
你确定你没有一些“使用命名空间 eq;”在你的标题中的某个地方?
啊!就是这样@Dmitry!愚蠢的!当然,它没有抛出任何其他错误,因为“window.h”包含在“stupidme.h”之后,而其他所有内容都在它之前。叹息...谢谢大家! @Dmitry,将您的评论作为答案,以便我接受!
很高兴能帮上忙 :)
【参考方案1】:
也许你的标题中有一些using namespace eq;
【讨论】:
以上是关于模棱两可的类命名空间问题的主要内容,如果未能解决你的问题,请参考以下文章