Also erst einmal ging es mir vorwiegend darum, anzumerken, dass es keinen großen Sinn macht zwei solche Klassen zu haben. Eine für Position und Größe der BoundingBox und eine Klasse, die lediglich die Kollisionsüberprüfung implementiert. Da kann man das auch gerade zusammenfassen. Ich arbeite meist entweder mit der SFML oder bei etwas größeren Projekten mit ClanLib. Ich würde beide als recht gute Engines / Frameworks einstufen und beide verfügen über eine Rect Klasse, die eine Funktion zur Verfügung stellt mit der ein Überlappen zweier Rects überprüft werden kann.
Zum Anderen bin ich mir nicht sicher ob ein CollisionManager bei einem einfachen 2D Framework Sinn macht. Wenn ich dich richtig verstanden habe, dann würden dabei - selbst wenn mich nur die Kollision eines ganz speziellen Objekts mit einem ganz speziellen anderen interessiert - erst einmal alle Objekte auf Kollisionen überprüft, dabei würden zwei Listen entstehen, die müssten dann im Nachhinein noch durchsucht werde bis man dann das Objekt gefunden hat was einen interessiert...
Ich glaube dein Ansatz ist eher der einer Physik Engine (bin mir nicht sicher, aber ich glaube Box2D macht das so), bei der davon ausgegangen werden kann, dass wirklich alle Objekte (in Box2D Instanzen von b2Body) sich entsprechend der physikalischen Gegebenheiten verhalten sollen. Da müssten dann wirklich bei jedem Frame alle auftretenden Kollisionen erkannt und behandelt werden.
Gruß
SaRu_