模板固有性 - 变量不命名类型

Inhertiance with Templates - Variable does not name a type

本文关键字:类型 变量 固有性      更新时间:2023-10-16

我在下面有以下代码示例,有两个模板类,一个是基类,一个是派生类。我需要从派生类访问基类中的一个类型,但它说它没有命名类型。为什么会这样呢?

'Parameter' does not name a type

using namespace std;
template<typename PointT>
class BaseClass{
public:
    BaseClass(){}
    class Parameter{
        Parameter(){}
    };
};
template<typename PointT>
class DerivedClass : public BaseClass<PointT>{
public:
    DerivedClass(){}
    class ParameterExtended{
        Parameter x;
    };
};

你需要这个:

typename BaseClass<PointT>::Parameter x;