Classes amies et namespace
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:
Code:
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;
} |
Le problème est que ça ne compile pas, en mettant comme message d'erreur "error: 'int N::A::m_i' is private"
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