2009-11-20 (金)
*C++
C++で実体を代入でコピーしても仮想関数テーブルはコピーされないっぽい.あとで確認しよう.
C++でポリモーフィズムを実現するためには,仮想関数を持った基底クラスを作るか,テンプレートを使うかの二択になるけど,作り始めるときにどちらかを選ばないといけない.それぞれ一長一短があるので,場合によって使い分ける必要がある.でも書くコードが違いすぎるので,途中でもう一方に変更しにくいのが問題.
あるクラスのvirtualを全て無効にした上で,そのクラスを受け取る関数は全てテンプレート関数にするくらいのことが一瞬で出来るとうれしい.マクロを駆使すれば可能かな.