Ja bym chciał znać wszystkie szczególiki
Jak zrobisz parę razy taki podział poprawnie to nie będziesz miał potem z tym problemów. Generalnie ja stosuję zasadę, że ważne jest aby sam unit (cpp + h) kompilował się bez błędów. Czyli nie polegamy na kolejności kompilacji. To znaczy, że wcześniej (w innym unicie) dołączaliśmy jakiś standardowy nagłówek i tylko w jednym dołączam. Jak wykorzystuję np. funkcję printf
w 10 unitach to w każdym z nich dołączam <stdio.h>
Ważne też aby definiować dla każdego nagłówka strażnik postaci:
#ifndef NAZWAPLIKU_H
#define NAZWAPLIKU_H
/*
tutaj jakieś deklaracje
*/
#endif
ewentualnie użycie #pragma once
Jak masz dużo plików to warto czasem wprowadzić przestrzenie nazw aby nie było jakichś konfliktów.
bo zauważyłem, że przy tworzeniu projektów to nawet kolejność includów ma znaczenie.
Szczerze to nigdy nie miałem takiego problemu. Sprawdź czy każdy unit kompiluje się oddzielnie. Jeśli nie to brakuje nagłówków. Jeśli kompiluje się oddzielnie, a pomimo to przy kompilacji całego projektu są błędy to być może masz jakiś konflikt nazw. Ale tu już trzeba by wiedzieć jakie to są błędy.