Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C++] Separare definizioni classi e funzioni dall'implementazione

    Ciao a tutti. Sto imparando il c++ (linux), e mi sto riferendo a un libro che ho comprato.
    Questo libro dice che è possibile separare le definizioni delle classi (e le loro relative funzioni) in un file (.h), ma tenere l'implementazione di queste funzioni in un altro file (.cpp), che facendo riferimento all'header accede ugualmente alle funzioni. La mia domanda è...
    Ho scritto il programma esempio sul libro (uguale, tranne i commenti), con un file .h per la classe, un .cpp per le funzioni e un altro .cpp per il main...
    Come faccio a compilarlo? Se tento di compilare il main con "g++ main.cpp" mi dà il seguente output:
    main.cpp.text+0x50): undefined reference to `GradeBook::GradeBook(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
    main.cpp.text+0xe9): undefined reference to `GradeBook::GradeBook(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
    main.cpp.text+0x136): undefined reference to `GradeBook::getCourseName()'
    main.cpp.text+0x168): undefined reference to `GradeBook::getCourseName()'
    main.cpp.text+0x256): undefined reference to `GradeBook::setCourseName(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
    main.cpp.text+0x2a3): undefined reference to `GradeBook::getCourseName()'
    main.cpp.text+0x2d5): undefined reference to `GradeBook::getCourseName()'
    collect2: ld returned 1 exit status
    C'è un'opzione di main che mi fa compilare in modo corretto?
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

  2. #2
    Hai inserito all'inizio del file main.cpp la direttiva
    codice:
    #include "main.h"
    (o come si chiama il tuo header)?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Si, avevo già incluso l'header, non solo nel main, ma anche nell'implementazione delle funzioni
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

  4. #4
    Nessuno sa come fare?
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

  5. #5
    wow... era un'idiotata...
    per chi fosse interessato si risolve così:
    digitare "g++" seguito da tutti i file .cpp che si desidera compilare:

    Esempio:
    g++ main.cpp implemenattion.cpp ...... ending.cpp

    ciao!
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

  6. #6
    Originariamente inviato da MisterBean
    wow... era un'idiotata...
    per chi fosse interessato si risolve così:
    digitare "g++" seguito da tutti i file .cpp che si desidera compilare:

    Esempio:
    g++ main.cpp implemenattion.cpp ...... ending.cpp

    ciao!
    Oppure più semplicemente ti costruisci un "makefile", un unico file in cui definisci tutti i file da compilare e le opzioni di compilazione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.