Se questa è la traccia, non c'è scritto che devi ereditare da una std::list (come lasciavi presupporre dall'altro post), quindi hai deciso tu di farlo. E comunque insistere sull'ereditarieta di Squadra da std::list<Giocatore*> è sbagliato. Doppiamente sbagliato se non altro perché se si volesse sostituire la std::list con un std::vector la cosa non sarebbe indolore. Triplamente sbagliato perché non si capisce cosa dovrebbe rappresentare un: Squadra.push_back.Progettare la classe Giocatore tenendo conto che il sistema deve essere flessibile all aggiunta di un nuovo ruolo. Inserire in Giocatore tutti i metodi che si ritengono opportuni e mostrare la definizione di almeno una tipologia di Giocatore.
Implementare i metodi mancanti della classe squadra:
Le funzioni di Squadra dovrebbero rappresentare un'azione comprensibile e contestualizzata a quello che si sta facendo: è meglio Squadra.push_back o Squadra.add_giocatore?
Direi che sei decisamente fuori strada.
Francamente non capisco: nel main istanzi una classe e ne usi le funzioni. Cosa non è chiaro?il problema è capire come creare un main