Originariamente inviata da
torn24
Non sono un esperto, ma non so se un esperto risponderebbe alla tua domanda e quindi provo a darti una risposta
In C/C++ per poter utilizzare una classe, questa deve essere dichiarata nel sorgente che ne fa uso. Il C/C++ ammette più dichiarazioni ma una sola implementazione della classe.
Una stessa classe può essere usata in più sorgenti, se io separo la dichiarazione in un file header, lo posso includere in tutti i sorgenti e avrò tante dichiarazioni, ma comunque una sola implementazione nel file .cpp.
Se io definisco i metodi all'interno della classe, e dovessi usare la classe in più sorgenti,dovrei includere il file nei sorgenti che ne fanno uso, ma il linker mi darebbe errore perché esisterebbero più implementazioni della classe.
Quindi se la classe la uso in un unico sorgente potrei implementarla in un unico file "sconsigliato ma non vietato", se la uso in più sorgenti sono obbligato a separare la dichiarazione dalla implementazione.