‘m_t’ was not declared in this scope
以下のコードで、 TB は問題ないのに、T2 がこのエラーを出すのはなぜですか?
また、テンプレートを使用しながら、T2 で T1 のメンバーにアクセスするにはどうすればよいですか?
// All good
class TA
{
public:
TA() {}
protected:
int m_t;
};
class TB : public TA
{
public:
TB() {}
int get()
{ return m_t; }
protected:
};
// Error in T2
template<typename T>
class T1
{
public:
T1() {}
protected:
int m_t;
};
template<typename T>
class T2 : public T1<T>
{
public:
T2() {}
int get()
{ return m_t; }
protected:
};