可能重复:
GCC problem : using a member of a base class that depends on a template argument
template <typename AType, typename OuterClass>
class A{
public:
A (AType a, OuterClass & b) : a(a), b(b) { }
AType a;
const OuterClass & b;
};
template <typename T>
class B {
public:
class C : public A<int, B> {
C(const B & b) : A<int, B>(0, b) {}
int getA() { return a; }
};
};
这段代码有点长,但它是我能找到的重现问题的最小例子。 C类应该继承字段&#34; a&#34;从它的超类A,visual c ++编译它没有错误。但由于某些原因,在gcc下,在函数getA中我得到了错误:'a'未在此范围内声明&#34;。这段代码有什么问题?如何让它更便携?