【发布时间】:2011-08-26 04:58:36
【问题描述】:
我不敢相信 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'
}
};
【问题讨论】:
-
我已经编辑了这个问题,以便更清楚地了解问题所在。最初听起来您是从内部类继承的,并且问题中的任何地方(但代码)都没有提到模板,而它们是手头的实际问题。
标签: c++ class templates inheritance