const基类的效果

时间:2013-03-23 07:50:02

标签: c++ const derived-class

以下构造的实际效果是什么:

class Base { /* ... */ };

template<class T>
class Derived : public T { /* ... */ };

int main() {
    Derived<const Base> d;
    // ...
}

Derived类只能访问const - Base界面的一部分吗?我的第一次测试表明实际上根本没有效果。为什么呢?

谢谢!

1 个答案:

答案 0 :(得分:2)

我的猜测是const会被忽略,因为如果你试着写

class Derived : public const Base

程序doesn't compile

修改

frozenkoi在评论中给出了标准的相关部分:

  

“命名类类型或其cv限定版本的typedef-name(7.1.3)也是类名。如果使用命名cv限定类类型的typedef-name,如果需要类名,则忽略cv限定符。不能将typedef-name用作类头中的标识符。“第9.1节