Come collegare L'Header alla funzione Main?

di il
8 risposte

Come collegare L'Header alla funzione Main?

Ciao ragazzi, vi scrivo nella speranza che possiate rispondere ad un quesito alla quale non trovo risposta sul mio testo (almeno per il momento)
Sto studiando il riutilizzo del software e quindi gli esercizi mi vengono chiesti spezzati in: Header, file .h (Con i prototipi delle funzioni e dei dati membro), Definizione delle Funzioni, file .cpp (Dove creo la struttura della classe), e infine una funzione main per la verifica della classe.

Nei sorgenti della Definizione delle Funzioni, e della Funzione main inserisco #include "NomeClasse.h", e tutti e tre i file sono nella stessa cartella, ma quando provo a mandare in run con Code::Blocks mi da errore e restituisce vari errori di undefined reference to ...

Ovviamente penso che dovrei compilare il file .h e quello .cpp prima di invocare la classe all'interno della funzione main ? Se fosse cosi potreste aiutarmi in questa operazione delucidandomi sul da farsi ?

Vi ringrazio per il tempo

8 Risposte

  • Re: Come collegare L'Header alla funzione Main?

    Ma hai inserito nel progetto tutti i file .cpp ?
  • Re: Come collegare L'Header alla funzione Main?

    Nella cartella ora mi trovo con 3 file:
    GradeBook.h
    GradeBook.cpp
    main.cpp

    Ma non sono stati compilati
  • Re: Come collegare L'Header alla funzione Main?

    Che vuol dire? Hai creato un progetto con Code::Blocks? Hai aggiunto i file .cpp al progetto e compilato il progetto?

    Usi Linux? Windows?
  • Re: Come collegare L'Header alla funzione Main?

    Mi spiego meglio, allora, ho questi tre file in codice sorgente:

    //GradeBook.h:
    
    #include <string> 
    
    using namespace std;
    
    class GradeBook
    {
    public:
    GradeBook( string );
    void setCourseName( string ); 
    string getCourseName();
    void displayMessage();
    
    private:
    string courseName; 
    }; 
    //GradeBook.cpp:
    
    #include <iostream>
    #include "GradeBook.h"
    
    using namespace std;
    
    GradeBook::GradeBook( string name )
    {
    setCourseName( name ); 
    } 
    
    void GradeBook::setCourseName( string name )
    {
    courseName = name; 
    }
    
    string GradeBook::getCourseName()
    {
    return courseName; 
    } 
    
    void GradeBook::displayMessage()
    {
    cout << "Welcome to the grade book for\n" << getCourseName()
    << "!" << endl;
    } 
    //main.cpp:
    
    #include <iostream>
    #include "GradeBook.h" 
    
    using namespace std;
    
    int main()
    {
    GradeBook gradeBook1( "CS101 Introduction to C++ Programming" );
    GradeBook gradeBook2( "CS102 Data Structures in C++" );
    
    cout << "gradeBook1 created for course: " << gradeBook1.getCourseName()
    << "\ngradeBook2 created for course: " << gradeBook2.getCourseName()
    << endl;
    return 0;
    } 
    
    Ora, ho salvato tutti e tre i file nella stessa cartella, e vorrei collegarli per vedere se ci sono errori, perchè con Code::Block posso avviare ciò che ho scritto come eseguibile e testarne il corretto funzionamento soltanto se scrivo classe e main nello stesso progetto. Cosi posso continuare a testare il funzionamento di questo e dei successivi progetti mantenendo inalterata la metodologia per il riutilizzo delle classi.

    Utilizzo Windows
  • Re: Come collegare L'Header alla funzione Main?

    Come ti ho più volte detto, crea un progetto con CB e aggiungi tutti i sorgenti. Poi crea l'eseguibile.
  • Re: Come collegare L'Header alla funzione Main?

    oregon ha scritto:


    Come ti ho più volte detto, crea un progetto con CB e aggiungi tutti i sorgenti. Poi crea l'eseguibile.
    Perdonami, ma visto che già me lo avevi detto, e non l'avevo capito, risulta inutile ribadire di averlo già ripetuto, per me la tua frase ha la stressa valenza di uno che dice ad un altro tizio che non sa nuotare: "Allora, buttati in acqua, inizia a muovere braccia e mani in maniera alternata, poi nuota"...

    Chiusa la parentesi, ritornando al problema, quando apro C::B io apro i tre file, ma non so come creare l'eseguibile, se fossi cosi gentile da spiegarmi i passi da seguire, potrei capire meglio ed eviterei di fartelo ripetere ulteriormente

    Come al solito, grazie
  • Re: Come collegare L'Header alla funzione Main?

    Ti è stato detto di creare un progetto
  • Re: Come collegare L'Header alla funzione Main?

    B2OG4N ha scritto:


    Perdonami,
    Perdonami tu, ma una ricerca non puoi fartela da solo?

Devi accedere o registrarti per scrivere nel forum
8 risposte