我正在尝试从另一个部分专用的模板类继承一个部分专用的模板类。我真的很感激,如果有人能解释什么是问题。
示例:
template<typename T, typename U>
class Base
{
public:
int i;
Base(int _i) : i{_i}
{}
};
template<typename T, typename U>
class Derived: public Base<T, U>
{
public:
Derived(int _i) :Base<T, U>{_i}
{}
};
template<typename U>
class Base<int, U>
{
public:
int i ;
Base<int, U>(int _i)
:i{_i}
{}
};
template<typename U>
class Derived<int, U>: public Base<int, U>
{
public:
Derived(int _i)
: Base<int, U>{_i}
{}
void print_i()
{
std::cout << i << std::endl;
}
};
int main()
{
Derived<int, bool> X(10);
X.print_i();
return 0;
}
期望:我希望我可以从相同类型的Derived类成员函数访问Base类成员变量。
当前输出:编译时错误说:使用未声明的标识符&#39; i&#39;