Ovviamente dipende da cosa dovrai usare per la gui ma, in generale, dovresti poter creare oggetti di una determinata classe che rappresentano le finestre.
Ad esempio, la finestra principale puoi definirla in un header MainWindow.h del tipo:
Codice PHP:
#include "CalciatoriWindow.h"
#include "ClassificaWindow.h"
#include "Calciatori.h"
#include "Squadre.h"
.
.
.
class MainWindow
{
private:
.
.
CalciatoriWindow* calcWin;
ClassificaWindow* sqWin;
vector<Calciatori> vectCalciatori;
vector<Squadre> vectSquadre;
.
public
.
.
};
come noti, all'interno hai degli oggetti che rappresentano i dati (calciatori, squadre...), e degli oggetti che rappresentano le finestre da mostrare.
Quando clicchi, ad esempio, sul tasto che deve mostrarti la finestra dei calciatori, avrai qualcosa di simile:
Codice PHP:
void MainWindow::showCalciatoriWindow(MouseEvent e)
{
this->calcWin->setData(this->vectCalciatori);
this->calcWin->show();
}
questo metodo, contenuto in MainWindow.cpp, collega il click del mouse al tasto. Vengono settati i dati da mostrare e viene richamato show, per mostrare la finestra.
Ovviamente la parte che ti interessa principalmente è la show. Il setData è solo di esempio.
Come detto, avrai due file CalciatoriWindow.h e CalciatoriWindow.cpp, e all'interno della classe CalciatoriWindow avrai i metodi show (che mostra la finestra) e close (definiti da te oppure ereditati da un qualche Widget che implementa una finestra nella libreria che utilizzi).
Stesso per tutte le altre finestre.
Il tutto si riduce ad una finestra principale che richiama show sulle varie finestre che, a loro volta, verranno chiuse dal loro metodo close.
Il main è sempre unico e definisce il punto d'accesso al programma, quindi non ha senso crearne più di uno.