>>939のつづき
件の話の流れから、「デストラクタvirtual」と「デストラクタprotected」の
使い分けのような部分を示したかったのです。
俺の理想としてはインターフェースから導出→(当然)デストラクタvirtual
実装の再利用及び、アプリケーションの特性を示すクラス→デストラクタprotected
の気持ちを持っています。※基本APIはここでは考えません。

で、インターフェースから導出するのは
なるべく動的にクラスが扱われる場合
(一緒の配列に格納したりStateパターンを使ったりするような場合)
にするべきだということです。使用例2において配列で示しました。
動的でなければほとんどテンプレートでコンパイル時に静的解決できるだろうと
考えています。動的に使用しないなら使用例1で十分(インターフェース不要)
ということです。

こうするとインターフェースばかり(仮想関数ばかり)で
効率が下がってしまうという問題を回避できるのではないかという意味でした。
デストラクタにvirtualをつけるのを嫌がるのは効率を考えるからだ、
というふうに受け止めているからです。