Hallo, der Titel ist vielleicht ein wenig missverständlich, aber mein Problem ist folgendes:
Ich habe eine Klasse Foo im namespace A, und eine Klasse Bar im namespace A::B, zudem hat A ein Element B gekapselt.
Also:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
namespace A
{
namespace B
{
class Bar;
}
class Foo
{
private:
static B::Bar MyBar;
static void DoSth(){}
};
namespace B
{
class Bar
{
public:
friend class Foo;
void DoSthElse(){Foo::DoSth();}
};
}
}
|
Damit Zeile 21 klappt, habe ich in Z.20 ein friend class Foo; eingefügt.
Dennoch kommt folgender Fehler:
error C2248: "A::Foo:: DoSth": Kein Zugriff auf private Member, dessen Deklaration in der A::Foo-Klasse erfolgte.
main.cpp(13): Siehe Deklaration von 'A::Foo:: DoSth'
main.cpp(10): Siehe Deklaration von 'A::Foo'
(Sorry für die Leerzeichen, denn sonst wird der Text in
umgewandelt)
Kann mir das bitte jemand erklären warum er meine Friend-Deklaration ignoriert?
Und wie kann ich das umgehen?
Danke schon mal im voraus
mfg CBenni::O