chetigol
2012-06-19, 17:36:34
Hi,
habe eine Frage zu folgendem Beispiel:
template < class C >
class Super
{
private:
class A
{
public:
int a;
};
class B : public A
{
public:
B()
{
a = 5;
};
};
};
Mein Problem ist die Zuweisung a = 5 in der abgeleiteten inneren Klasse B.
Ich bekomme folgenden Comilerfehler:
In constructor 'Super<C>::B::B()'
error: 'a' was not declared in this scope
greif ich aber über die Klasse A drauf zu (A::a), dann funktioniert es.
Kann mir jemand den Grund dafür sagen, wieso sich hier der Compiler aufregt?
Lass ich das template weg, dann funktioniert es problemlos. Als Template muss ich aber über A::a auf die variable zugreifen.
habe eine Frage zu folgendem Beispiel:
template < class C >
class Super
{
private:
class A
{
public:
int a;
};
class B : public A
{
public:
B()
{
a = 5;
};
};
};
Mein Problem ist die Zuweisung a = 5 in der abgeleiteten inneren Klasse B.
Ich bekomme folgenden Comilerfehler:
In constructor 'Super<C>::B::B()'
error: 'a' was not declared in this scope
greif ich aber über die Klasse A drauf zu (A::a), dann funktioniert es.
Kann mir jemand den Grund dafür sagen, wieso sich hier der Compiler aufregt?
Lass ich das template weg, dann funktioniert es problemlos. Als Template muss ich aber über A::a auf die variable zugreifen.