皆様アドバイスありがとうございます
>>672
一つのクラスで出来たらいいですね。
例えば HitTester へのオブジェクトの登録を
HitTester::regist( Object, GroupID ) として
異なるGroupIDに属するオブジェクト同士間の衝突のみを検知する
・・・という意味でよかったですか?

ビリヤードの例なら
for( int i=0; i<N; i++) HitTester::regist( Balls[i], i )

自機弾が敵機に当たっているかを判定する例なら
for( int i=0; i<N; i++ ) HitTester::regist( MyMachineBullets[i], 0 )
for( int i=0; i<M; i++ ) HitTester::regist( Enemies[i], 1 )
というように