Avete qualche buon consiglio su come evitare le dipendenze circolari dei file di intestazione, per favore?Evitare le dipendenze circolari dei file di intestazione
Naturalmente, sin dall'inizio, cerco di progettare il progetto nel modo più trasparente possibile. Tuttavia, man mano che vengono aggiunte sempre più funzionalità e classi e il progetto diventa meno trasparente, le dipendenze circolari iniziano a verificarsi.
Esistono regole generali, verificate e funzionanti? Grazie.
+1 Ciao Artyom, grazie per la risposta. un utilizzo più frequente delle dichiarazioni anticipate potrebbe essere utile. –
@Artyom: se il puntatore è il proprietario della risorsa, suggerirei di usare un 'scoped_ptr' o' unique_ptr'. Se il puntatore è semplicemente un riferimento a un oggetto, potrebbe essere necessario utilizzare un pattern Observer in modo che sia "non impostato" ogni volta che l'oggetto di riferimento viene distrutto. –
@Matthieu M. Ovviamente, (o 'auto_ptr', che è meglio quando non si vuole dipendere da' boost' o 'C++ 0x'). Ma volevo piuttosto mostrare un'idea generale piuttosto codice dal vivo. Potrebbe anche essere 'std :: vector' che funzionerebbe se foo avesse una dichiarazione in avanti. –
Artyom