Hello,

Voici ce que j'ai :

A.hpp :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
namespace namespace1
{
  namespace namespace2
  {
    extern const int* maVariable;
    void maFonction2();
  }
}
A.cpp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
namespace namespace1
{
  namespace namespace2
  {
    const int* maVariable = nullptr;
  }
}
B.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
namespace namespace1
{
  namespace namespace3
  {
    void maFonction1()
    {
        ::namespace1::namespace2::maVariable = un_pointeur;
        ...
        ::namespace1::namespace2::maFonction2();
    }
  }
}
maFonction utilise namespace2::maVariable, mais à l'intérieur de cette fonction, la valeur de cette variable externe est toujours nullptr.

Si j'ajoute dans le bloc de code ci-dessus extern devant l'affectation, gcc me dit :

invalid use of qualified-name ‘namespace2::maVariable’