这工作正常:
class A{
protected:
int i;
};
class B:public A{
public:
void f(){
i=5; //fine
}
};
但是,如果我尝试对静态多态性做同样的事情,它会失败:
template <class Derived, typename T, int N>
class Vector{
protected:
std::vector<T> v;
然后:
template <typename T, int N>
class Vector234:public Vector<Vector234<T, N>,T,N>{
void test(){
T t=v[0]; // v is undeclared identifier
}
为什么是这样?