[C++] compilare con classi in file separati
Salve a tutti; Il libro di programmazione, non so per quale motivo, ci suggerisce di suddividere la programmazione in 3 sorgenti, per quanto riguarda una classe:
un file GradeBook.h, con l'interfaccia della classe (private, public, prototipi delle funzioni e compagnia)
un file GradeBook.cpp con l'implementazione delle funzioni e dei costruttori
un sorgente, che ora chiamerò programma.cpp, con inclusa la classe "GradeBook.h", per utilizzarla, praticamente il programma principale con int main().
La domanda è: come si compila tutta questa roba con il g++? Come si linkano insieme tutti questi file? Aiutatemi senno schiaffo tutto in GradeBook.h e buonanotte
Grazie
un file GradeBook.h, con l'interfaccia della classe (private, public, prototipi delle funzioni e compagnia)

un file GradeBook.cpp con l'implementazione delle funzioni e dei costruttori
un sorgente, che ora chiamerò programma.cpp, con inclusa la classe "GradeBook.h", per utilizzarla, praticamente il programma principale con int main().
La domanda è: come si compila tutta questa roba con il g++? Come si linkano insieme tutti questi file? Aiutatemi senno schiaffo tutto in GradeBook.h e buonanotte

Grazie
Risposte
g++ -o nomefile GradeBook.cpp programma.cpp
L'ordine dovrebbe essere questo, comunque l'idea è quella di elencare i file, tranne l'header, che deve stare nella stessa cartella degli altri file.
PS: i motivi per cui si separano le classi in header e implementazioni sono molto validi. Cioè: l'idea delle classi è di scrivere codice che possa essere facilmente implementabile in vari programmi. Teoricamente, si compila l'implementazione (in .obj) e si passa, a chi ha bisogno delle funzioni che hai scritto, il .obj e l'header, con le intestazioni di tutte le funzioni. Questo serve a "nascondere" il codice, quindi a proteggerlo.
L'ordine dovrebbe essere questo, comunque l'idea è quella di elencare i file, tranne l'header, che deve stare nella stessa cartella degli altri file.
PS: i motivi per cui si separano le classi in header e implementazioni sono molto validi. Cioè: l'idea delle classi è di scrivere codice che possa essere facilmente implementabile in vari programmi. Teoricamente, si compila l'implementazione (in .obj) e si passa, a chi ha bisogno delle funzioni che hai scritto, il .obj e l'header, con le intestazioni di tutte le funzioni. Questo serve a "nascondere" il codice, quindi a proteggerlo.
Ora va. Prima mi dava un errore, ma ho capito poi che mi ero dimenticato un punto e virgola nel sorgente... (banale quanto frequentissimo errore)
Grazie!
Grazie!
