类的公共字段在其子类中不可见

时间:2012-03-21 19:13:33

标签: c++

  

可能重复:
  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;。这段代码有什么问题?如何让它更便携?

0 个答案:

没有答案