>>799
必要です。逆に聞きたいです。CTableは、単にコンストラクタでの
初期化のためだけにクラス化しているのです。それだけのために、
map,vectorの便利な関数を全部隠蔽されてしまうのは、とてつもなく不便だと
感じませんか? あとから「あ、やっぱり使うから付け足そう」などと
するより、最初から全部使えた方が余計な再コンパイルは不要で、
便利ですよね?

>>800
キタ━━━━(゚∀゚)━━━━!!!!
なるほど、これは素晴らしいです。そっかー。こうすればいいのか……。

>>802
いや、「起こりそうかどうか」なんて、どうでもいいんです。
誰かが「仮想デストラクタのないクラスをpublic継承させちゃいかんよな」って
言ったとき、>>766みたいなコードをあなたが書いてたとして、「いや、
基底クラスからdeleteさせられることがほとんどありえないなら、
public継承するけど」って言えますか? そして、説得できますか?
俺は、無理だと思います。だから俺は、「いや、基底クラスからdeleteされることが
ありえないようなクラス設計をした上でなら、public継承させるけど」
って言いたいので、そう言う道を探してるんです。

>>803
map<string,FUNC>* p = &table;
delete p;
ならどうだろう……? new,new[]といっしょに、delete,delete[]も
privateで隠蔽しといた方が安全ですかね……?