Bonjour,
J'ai un problème que je n'arrive pas à résoudre quand je mixe classe amie et namespace:
Plutôt qu'un long discours, voilà un petit code qui illustre le problème:
Le problème est que ça ne compile pas, en mettant comme message d'erreur "error: 'int N::A::m_i' is private"
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
17
18
19
20
21 class B; namespace N{ class A{ friend class B; private: int m_i; }; }; class B { public: void f(); }; void B::f() { N::A obj; int k = obj.m_i; }
alors que si je fait une classe amie c'est justement pour accéder aux membres privés!
En revanche si j'enlève le namespace, ça passe sans problème.
Bref, quelqu'un comprendrait-il où est le problème et comment le résoudre?
Merci
Partager