我不敢相信gcc不會接受下面的代碼......請告訴我,如果從基本模板訪問內部類真的不可能,或者我錯過了什麼嗎?模板繼承內部類訪問問題
template <class T> class BaseClass
{
public:
struct MyStruct
{
T *data;
};
};
template <class T> class ChildClass : public BaseClass <T>
{
public:
void problem()
{
MyStruct ms1; //error: 'MyStruct' was not declared in this scope
::MyStruct ms2; //error: '::MyStruct' has not been declared
BaseClass<T>::MyStruct ms3; //error: expected `;' before 'ms3'
}
};
我編輯了這個問題,使問題更加明顯。最初,這聽起來像你是從內部類繼承的,並且模板在問題中的任何地方(但代碼)都沒有被提及,而它們是實際的問題。 – 2011-05-16 08:03:51