%% Pueden dibujar este diagrama en https://mermaid.live/edit classDiagram class miembro_equipo { <> +~miembro_equipo() +numero_playera() int } class entrenador { +numero_playera() int } class deportista { -numero int +deportista(n:int) +numero_playera() int -pon_playera(n:int) void } class estadio { } class equipo_deportivo { +nombre string +estadio_sede estadio* +director_tecnico entrenador* +jugador1 deportista* +jugador2 deportista* +jugador3 deportista* } class string { <> } class invalid_argument { <> } %% Realización de interfaz (herencia implementando las funciones virtuales puras) miembro_equipo <|.. entrenador miembro_equipo <|.. deportista %% Composiciones (es "parte del equipo"; si el equipo se destruye, el miembro o atributo también muere) equipo_deportivo *-- "1" string %% Agregaciones (es "parte del equipo", pero puede sobrevivir a la disolución del equipo) %% (el ejemplo especifica multiplicidad: un equipo tiene un entrenador, un equipo tiene tres jugadores) equipo_deportivo o-- "1" entrenador equipo_deportivo o-- "3" deportista %% Asociaciones (no es "parte del equipo", pero aparece como miembro o atributo porque está estrechamente relacionado con él; puede sobrevivir a la disolución del equipo) equipo_deportivo --> "1" estadio %% Dependencias (no es un atributo o miembro de la clase, pero su implementación menciona a la otra clase) deportista ..> invalid_argument