2010-07-09 15 views
4

Je ... me sens vraiment stupide de le demander, mais je ne suis pas sûr de savoir comment résoudre le problème.Classe ambiguë Espace de nom Problème

Ceci est un peu snippit de mon code (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: 

    }; 
} 

Et l'erreur que je reçois est: Use of 'Window' is ambiguous et il dit qu'il est déclaré dans Xh comme typedef XID Window et window.h comme class eq::Window qui est sa superclasse.

La classe que je déclare devrait être en namespace eqOther oui? eqOther::Window est différent de eq::Window!?

Je me sens tellement stupide, mais je ne vois pas ce que je l'ai fait mal ...

+0

Obtenez-vous un avertissement ou une erreur message? – kiamlaluno

+1

Je voudrais utiliser ':: eq :: Window' juste pour être sûr. Mais je ne peux pas voir ce que vous avez mal fait non plus. Il se plaint que votre nom de type se heurte à un typedef défini dans l'espace de noms rood. Avez-vous fait une inclusion de 'X.h' dans la déclaration de l'espace de noms pour' eqOther'? – Omnifarious

+2

vous êtes sûr de ne pas avoir "using namespace eq;" quelque part dans vos en-têtes? –

Répondre

2

Peut-être que vous avez des using namespace eq; quelque part dans vos têtes