Bonjour tout le monde,

en C#, il existe un mot-clé internal. Lorsqu'une fonction membre est déclarée comme internal, elle n'est accessible que dans l'espace de nommage dans laquelle elle est déclarée.

Par exemple (ce pseudo-code est un mix de c++ et de C#):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace NM1
{
   class Class1
   {
       internal Class1(); // le constructeur est déclaré comme interne
   };
}
 
namespace NM2
{
    void une_fonction()
   {
      Class1 c1; // ne compile pas
      NM1::Class1 c2; // ne compile pas non plus
   }
}
Dans le code ci-dessus, il est absolument impossible d'appeler directement le constructeur de Class1 dans n'importe quel espace de nommage qui n'est pas NM1.

En ce moment je développe beaucoup en c#, et j'aime beaucoup cette fonctionnalité, et je m'y suis habitué. Du coup je cherche une façon pour faire la même chose en C++. Mais je n'ai pas le début d'une idée. Quelqu'un en a une?