模板类派生自具有静态数据成员的非模板类。为什么我不能在不指定模板参数的情况下访问它?实际上,我可以在没有模板参数的情况下访问模板类中的任何方法或数据吗?
class CNonTemplateBase{
public:
static int some_data;
};
int CNonTemplateBase::some_data = 10;
template<typename T> class CTemplateClass : public CNonTemplateBase{};
...
...
int a = CTemplateClass<int>::some_data; //OK
int b = CTemplateClass::some_data; //ERROR
最佳答案
这是因为 CTemplateClass
本身并不存在。必须首先使用提供的模板参数生成模板类。
关于c++ - 访问模板化类的非模板基类的静态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58875664/