>>256
>Watchの中でオーバーライドするとDAT.set()が呼べないと思うのですが・・・
えーと、いちおう Dat DAT; ていう変数自体使わない方向性で継承の手順書いて見たんだなぁ。
ちょっと言葉がたりなかったかな?(反省)
set 呼ぶときは Watch::exec() のなかで
>DAT.set(key);
の部分をただ単に
set(key);
って書く感じ。(オーバーライドしてあれば書けるでしょ?)
そうすると、set は Watch の中で「敢えて」オーバーライドしない限り使えない。
→つまり Disp の中では使えない。
っていうのが実現されるかなぁと。

もし Watch クラスの方は逆に Dat の key を読めないようにしたいなら、継承するとき private にするなり、Dat::is() を virtual にして Disp でオーバーライドするなり微調整してみては?

だいたい継承使わなくても>160+>162の方法じゃ納得いかないの?
結局アクセス制御の点では似たようなことになると思うんだけど。