Nur mal so als Idee:
ACPerson ( -string m_name ) -> CUser, CPlayer
CUser /* Der, der tippt */
CPlayer /* Fußballspieler */
ACTeam ( -Vector<CPlayer> m_players, +CPlayer getPlayerByNumber(int)) -> CTeamItalia, CTeamGermany, CTeamSpain, ...
/* Die Mannschaften mit verschiedenen Spielern */
/* Jeweils dann im ctor die Spieler zuordnen (oder mit Factory) */
ACGroup ( -Vector<ACTeam> m_teams) -> CGroupA, CGroupB, ...
/* Die Gruppen mit verschiedenen Mannschaften */
/* Jeweils dann im ctor die Mannschaften zuordnen (oder mit Factory) */
CMatch ( -ACTeam m_team1, -ACTeam m_team2, +Vector<CPlayer> getGoalsTeam1(), +Vector<CPlayer> getGoalsTeam2())
/* Eine Begegnung zweier Mannschaften */
/* Jeweils die Liste der Spieler, die die Tore geschossen haben */
Sind 3 Basisklassen. :floet: