2012-02-06 8 views
2

私は、そのボディ内に別のクラス(BaseUDT)を定義するテンプレートクラス(TBase)を作成しました。派生クラスからテンプレート基本クラスのユーザー定義型にアクセスするにはどうすればよいですか?

今、私はTBaseから派生するクラス(TDerived)を作成します。

template<class T> 
class TDerived : public TBase<T> 
{ 
public: 
    T m_derived; 
    BaseUDT m_baseUDT; 
}; 

このコードはVisual Studioでコンパイルされますが、MacマシンでXcodeでコンパイルしようとすると、コンパイルエラーが発生します。 TBase :: BaseUDTを使用しても動作しません。

私はISO C++ドキュメントを調べようとしていますが、それまでのところ関連するものはまだ見つかりませんでした。

答えて

1

その名前は依存している - ので、同じようにそれを宣言します。

template<class T> 
class TDerived : public TBase<T> 
{ 
public: 
    T m_derived; 
    typename TBase<T>::BaseUDT m_baseUDT; 
}; 
+0

それは動作します。どうもありがとう。 – Anindo

+0

@Anindoようこそ – justin

関連する問題