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 ...
Obtenez-vous un avertissement ou une erreur message? – kiamlaluno
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
vous êtes sûr de ne pas avoir "using namespace eq;" quelque part dans vos en-têtes? –