Anche se ho un discreto livello di esperienza professionale con programmazione orientata agli oggetti in Java e una familiarità di base con C, mi sono imbattuto in un blocco mentale con C ++ che speravo che altri sviluppatori potessero aiutarmi a brillare luce accesa.
In Java, quasi ogni volta che definisco una classe, creo naturalmente un nuovo file .java. Ovviamente ci sono le eccezioni delle classi interne e anonime, ma nel complesso una nuova classe indica un nuovo file. Con le nuove classi vengono i pacchetti per organizzarli e così via, e come ho iniziato a dilettarmi in C ++ ho preso lo stesso approccio di un file .java per classe e l'ho esteso a un file .hpp e un file .cpp per classe . Tuttavia, sembra che ci siano molti problemi con questo approccio. Quello che ho pensato ultimamente è così:
Diciamo che ho qualche tipo di gioco in cui c'è una classe che rappresenta il mondo di gioco e una classe per rappresentare le unità. Se il gioco di classe mondiale ha un metodo per ottenere l'unità in una posizione, va benissimo. Tuttavia, se voglio avere un metodo per recuperare il mondo che contiene dall'unità, le direttive di inclusione non si risolveranno nel modo in cui sono abituato a costruire progetti poiché ogni intestazione include l'altro. So che ovviamente deve esserci una soluzione pulita e voglio sapere se alcuni sviluppatori più esperti possono avere idee sulle risorse relative all'organizzazione del progetto C ++ o sulla gestione del costrutto specifico che ho citato.