Hallo,
ich habe eine Frage zum Standard. Ich habe heute längere Zeit dazu gegooglet
und widersprüchliche Angaben gefunden. Verhalten sich nested typedefs so wie
nested classes oder nicht? Konkret: Ist das folgende Beispiel korrekter C++ Code?
MS Visual Studio 2008 schluckt das jedenfalls nicht...
|
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
25
26
27
28
|
class B;
template < typename T >
class A
{
public:
A( B& b ) : b( b ) { }
void foo()
{
b.bar();
}
private:
B& b;
};
class B
{
public:
B() : a( *this ) { }
void blub()
{
a.foo();
}
private:
typedef A<B> ConcreteA;
ConcreteA a;
void bar();
};
|
Falls nicht: Existiert ein Konstrukt in der Sprache C++, welches das beabsichtigte
Ergebnis, nämlich, den Zugriff auf private / protected Member einer Klasse B einer
Klasse A offerieren, ohne die öffentliche Schnittstelle von B verändern zu müssen?
Abgesehen von friends natürlich.
Danke im Voraus