「Cでオブジェクト指向プログラミングを行なえ」を読んだらポリモーフィズムの部分を関数ポインタですっきりさせたくなった
問.Cでオブジェクト指向プログラミングを行なえ - 株式会社CFlatの明後日スタイルのブログ
を読んだらポリモーフィズムの処理分岐部分をすっきりさせたくなった
構造体に関数ポインタを持たせて、クラスに応じて関数を設定すればいける。
こんなかんじで。
void PrintObject(Object obj) { obj->printObj(obj->menber->m_obj); return; }
こうすると、クラスが追加された場合、PrintObjectなどのメソッド部分に手を
入れる必要はないけど、クラスに応じた関数ポインタ設定処理なんかが複雑化してしまいますね。