>>156
class shape に
bool m_bVisible;
を追加して、renderの最初で
if( !m_bVisible ) return;
とでもやればいいんじゃない?

もちろんコンストラクタで m_bVisible = false; としておく必要があるし、
new/deleteの変わりに m_bVisible を設定する必要がある。
(それようのメンバ関数を持つべきかな)

そしてclass shapeのインスタンスを配列で持って置けば…

欠点は動的に数を変更させたいときにちょっと面倒なこと、
使ってないshape分までメモリを余計に食うことかな。