2009-10 << 2009-11 >> 2009-12

2009-11-20 (金)

*C++

C++で実体を代入でコピーしても仮想関数テーブルはコピーされないっぽい.あとで確認しよう.

C++でポリモーフィズムを実現するためには,仮想関数を持った基底クラスを作るか,テンプレートを使うかの二択になるけど,作り始めるときにどちらかを選ばないといけない.それぞれ一長一短があるので,場合によって使い分ける必要がある.でも書くコードが違いすぎるので,途中でもう一方に変更しにくいのが問題.

あるクラスのvirtualを全て無効にした上で,そのクラスを受け取る関数は全てテンプレート関数にするくらいのことが一瞬で出来るとうれしい.マクロを駆使すれば可能かな.