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 : 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;
 
}
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