当たり前かもしれないが、constはクラスを継承するときに指定できない。
typedefを使っても無視される。
struct base
{
void non_const() { }
};
typedef const base const_base;
struct derived
: const_base
{
};
void func()
{
derived d;
d.non_const();
}
私は最初できても良さそうだと思った。しかし、派生クラスがconstでない時に基本クラスがconstだったら、派生クラスが基本クラスのconstメンバを呼び出してまずいことになる。