Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Errore programma del libro - Header

    Salve,

    Sto studiano gli Header, con un libro Deitel.
    Mi sembra strano, ma g++ e code::blocks danno errori nella compilazione.
    Funzione main()
    codice:
    // Fig. 3.17: fig03_16.cpp
    // Create and manipulate a GradeBook object; illustrate validation.
    #include <iostream>
    using std::cout; 
    using std::endl;
    
    #include "GradeBook.h" // include definition of class GradeBook
    
    // function main begins program execution
    int main()
    {
       // create two GradeBook objects; 
       // initial course name of gradeBook1 is too long
       GradeBook gradeBook1( "CS101 Introduction to Programming in C++" );
       GradeBook gradeBook2( "CS102 C++ Data Structures" );
    
       // display each GradeBook's courseName 
       cout << "gradeBook1's initial course name is: " 
          << gradeBook1.getCourseName()
          << "\ngradeBook2's initial course name is: " 
          << gradeBook2.getCourseName() << endl;
    
       // modify myGradeBook's courseName (with a valid-length string)
       gradeBook1.setCourseName( "CS101 C++ Programming" );
    
       // display each GradeBook's courseName 
       cout << "\ngradeBook1's course name is: " 
          << gradeBook1.getCourseName()
          << "\ngradeBook2's course name is: " 
          << gradeBook2.getCourseName() << endl;
       return 0; // indicate successful termination
    } // end main
    Sviluppo delle funzioni membro
    codice:
    // Fig. 3.16: GradeBook.cpp
    #include <iostream>
    using std::cout; 
    using std::endl;
    
    #include "GradeBook.h" // include definition of class GradeBook
    
    // constructor initializes courseName with string supplied as argument
    GradeBook::GradeBook( string name )
    {
       setCourseName( name ); // validate and store courseName
    } // end GradeBook constructor
    
    // function that sets the course name;
    // ensures that the course name has at most 25 characters
    void GradeBook::setCourseName( string name )
    {
       if ( name.length() <= 25 ) // if name has 25 or fewer characters
          courseName = name; // store the course name in the object
    
       if ( name.length() > 25 ) // if name has more than 25 characters
       { 
          // set courseName to first 25 characters of parameter name
          courseName = name.substr( 0, 25 ); // start at 0, length of 25
    
          cout << "Name \"" << name << "\" exceeds maximum length (25).\n"
             << "Limiting courseName to first 25 characters.\n" << endl;
       } // end if
    } // end function setCourseName
    
    // function to get the course name
    string GradeBook::getCourseName()
    {
       return courseName; // return object's courseName
    } // end function getCourseName
    
    // display a welcome message to the GradeBook user
    void GradeBook::displayMessage()
    {
       // call getCourseName to get the courseName
       cout << "Welcome to the grade book for\n" << getCourseName()  
          << "!" << endl;
    } // end function displayMessage
    Header
    codice:
    // Fig. 3.15: GradeBook.h
    // GradeBook class definition presents the public interface of  
    // the class. Member-function definitions appear in GradeBook.cpp.
    #include <string> // program uses C++ standard string class
    using std::string;
    
    // GradeBook class definition
    class GradeBook
    {
    public:
       GradeBook( string ); // constructor that initializes a GradeBook object
       void setCourseName( string ); // function that sets the course name
       string getCourseName(); // function that gets the course name
       void displayMessage(); // function that displays a welcome message
    private:
       string courseName; // course name for this GradeBook
    }; // end class GradeBook
    Compilando il main(), riscontro degli errori (undefined reference to)

    Io ho scritto un mio programma, un semplice hello world, e funziona ossia:
    main()
    codice:
    #include <iostream>
    #include "header.h"
    using namespace std;
    
    void Hello_World::welcome(){
    cout << "Hello World with Header!" << endl;
    
    }
    
    
    int main(){
    
    Hello_World hello;
    hello.welcome();
    return 0;
    
    
    }
    Header
    codice:
    class Hello_World
     {
       public:
        void welcome();
     };
    Preciso di non aver finito l'argomento, ma credo di aver capito.
    Attendo ulteriori spiegazioni; intanto ringrazio per l'attenzione.

    Saluti,
    signore del tempo.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma tu hai indicato al compilatore tutti i file sorgenti (tutti i .cpp)?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Non ho capito bene

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Come hai compilato il codice che hai mostrato?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Ti riferisci al codice del libro o il mio?
    Comunque compilo dove sta il main()

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ovviamente a quello che ti dà l'errore ...

    Che vuol dire "compilo dove sta il main" ?

    Scusa ... ti ho chiesto "come compili" ... quali comandi dai, per esempio, con g++ ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Devi includere anche GradeBook.h (se così l' hai chiamato).

  8. #8
    oregon, premo il tasto compila

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Va beh ... ci rinuncio
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Non riesco a capire se lo stupido sia io o tu.
    Forse non comprendi l'italiano, vabbè te lo ripeto:
    -apro i tre file nell'ide;
    -metto il focus sul main();
    -premo build and run;
    -la compilazione fallisce.

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.