如果我有一个包含许多typedef
'd变量的类,如下所示:
class X {
typedef token TokenType;
bool doStuff()
{
TokenType data;
fillData(&data);
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
有没有办法在派生类中覆盖typedef
for TokenType
?
NB这不是一个使用模板的好地方(这已经是模板化的类,任何更改都可能导致[编辑:无限 ]递归定义[ class X < class Y = class X < class Y . . .> >
等].)
你可以做的是阴影,但不能覆盖.也就是说:您可以使用自己的TokenType类型定义派生类Y,但只有当某人直接引用Y :: TokenType或通过静态类型为Y的对象时才会发挥作用.任何静态引用X :: TokenType的代码即使是Y型物体也会这样做.