J'utilise deux frameworks tiers. Je veux accéder à une nouvelle classe à partir des deux frameworks.accéder à l'espace de noms parent en C++
Le premier cadre utilise un espace de noms imbriqué comme:
namespace space1 {
namespace space2 {
class 3rdparty{
}
}
}
le deuxième cadre ne pas utiliser les espaces de noms. Si j'essaie d'appeler ma propre classe à partir du premier cadre qui utilise l'espace de noms, je ne peux tout simplement pas le faire correctement. Dans le meilleur des cas, je me retrouve avec des erreurs de liaison.
ma classe ressemble à ceci:
PlugIn_Processor.h:
class PlugIn_Processor{
public:
//constructor
PlugIn_Processor();
};
PlugIn_Processor.cpp:
#include "PlugIn_Processor.h"
PlugIn_Processor::PlugIn_Processor(){
};
Le fichier cpp qui utilise le premier cadre ressemble à ceci:
namespace space1 {
namespace space2 {
3rdparty::3rdparty{
PlugIn_Processor * plugIn_Processor;
plugIn_Processor = new PlugIn_Processor();
}
}
}
Cependant, quoi que je fasse, je finis avec des erreurs de l'éditeur de liens lors de l'appel du constructeur. Une solution consisterait à tout mettre sous l'espace de nom du framework tiers, mais comme je veux accéder à cette classe à partir de différents frameworks, je ne veux pas tout mettre sous cet espace de noms. Que pouvais-je faire pour contourner ce problème? Tout ce que j'ai essayé a échoué.
Pourriez-vous poster un code compilable qui produira l'erreur de l'éditeur de liens? C'est juste que les fragments de code actuels ne sont pas clairs. – Poni
Je suis d'accord. En outre, avez-vous essayé d'inclure l'espace de noms parent dans l'espace de noms enfant, ou y accéder via son nom d'espace de noms? –