Newsgroup: it.comp.lang.c++
Titolo: NEWBE ed esercizio di libro (HELP)  !!!

Ciao, stò seguendo un libro di C++ (quello di Deitel & Deitel)...alla fine 
del 3°capitolo vi è un esercizio da fare e cioè modificare una classe 
aggiungendo un secondo dato membro string con il nome del docente, scrivere 
una funzione set per modificare e una get per leggere e modificare il 
costruttore della classe specificando due parametri...uno per il nome del 
corso e uno per quello del Docente.
Dato che è l'inizio del libro nn spiega come specificare due parametri...io 
ho seguito un pò l'esercizio guida del libro ma mi dà sempre errore...se 
compilato, per la funzione setNomeDocente mi dice sempre "GradeBook has not 
been declared"....mi date una mano e sopratutto mi spiegate dove è 
l'inghippo?...sono 2 ore che ci stò sopra !
grazie in anticipo
Alex
******GradeBook.h*****
//GradeBook.cpp
//Implementazione della classe Gradebook
#include <iostream>
using std::endl;
using std::cout;
#include "GradeBook.h" //Inclusione della definizione della classe GradeBook
GradeBook::GradeBook(string name)
{
                            setNomeCorso (name);
                            }
//funzione per la convalida del nome del corso
void GradeBook::setNomeCorso (string name)
{
     if (name.length()<=25 )
     nomeCorso=name;
     if (name.length() > 25)
     {
                       nomeCorso=name.substr(0,25);
     cout << "Il Nome\"" << name <<"\" è più lungo di 25 
caratteri.\n"<<"sarà troncato al 25esimo carattere\n"<<endl;
     }//Fine if
     }//fine setNomeCorso
     //Funzione per il nome del docente!
//Legge il nome del corso
string GradeBook::getNomeCorso()
{
       return nomeCorso;
       }//Fine getNomeCorso
void GradeBook::setNomeDocente (string name1)
{
     if (name1.length()<=25 )
     nomeDocente = name1;
     if (name1.length() > 25)
     {
                       nomeDocente=name1.substr(0,25);
     cout << "Il Nome\"" << name1 <<"\" è più lungo di 25 
caratteri.\n"<<"sarà troncato al 25esimo carattere\n"<<endl;
     }//Fine if
     }//fine setNomeDocente
//Legge il nome del docente!
string Gradebook::getNomeDocente()
{
       return nomeDocente;
              }//Fine getNomeDocente
//Messaggio di Benvenuto
void GradeBook::MostraMessaggio()
{
     cout << "Benvenuti nel registro per il corso\n" << getNomeCorso()  << 
"!!" <<endl;
     cout << "Il Nome del docente è:\n" << getNomeDocente() << "!!" <<endl ;
     }
********GradeBook.cpp*********
//GradeBook.cpp
//Implementazione della classe Gradebook
#include <iostream>
using std::endl;
using std::cout;
#include "GradeBook.h" //Inclusione della definizione della classe GradeBook
GradeBook::GradeBook(string name)
{
                            setNomeCorso (name);
                            setNomeDocente (name1);
                            }
//funzione per la convalida del nome del corso
void GradeBook::setNomeCorso (string name)
{
     if (name.length()<=25 )
     nomeCorso=name;
     if (name.length() > 25)
     {
                       nomeCorso=name.substr(0,25);
     cout << "Il Nome\"" << name <<"\" è più lungo di 25 
caratteri.\n"<<"sarà troncato al 25esimo carattere\n"<<endl;
     }//Fine if
     }//fine setNomeCorso
     //Funzione per il nome del docente!
//Legge il nome del corso
string GradeBook::getNomeCorso()
{
       return nomeCorso;
       }//Fine getNomeCorso
void GradeBook::setNomeDocente (string name1)
{
     if (name1.length()<=25 )
     nomeDocente = name1;
     if (name1.length() > 25)
     {
                       nomeDocente=name1.substr(0,25);
     cout << "Il Nome\"" << name1 <<"\" è più lungo di 25 
caratteri.\n"<<"sarà troncato al 25esimo carattere\n"<<endl;
     }//Fine if
     }//fine setNomeDocente
//Legge il nome del docente!
string Gradebook::getNomeDocente()
{
       return nomeDocente;
              }//Fine getNomeDocente
//Messaggio di Benvenuto
void GradeBook::MostraMessaggio()
{
     cout << "Benvenuti nel registro per il corso\n" << getNomeCorso()  << 
"!!" <<endl;
     cout << "Il Nome del docente è:\n" << getNomeDocente() << "!!" <<endl ;
     }
******Quaderno.cpp***********
//Main del GradeBook!
#include <iostream>
using std::cout;
using std::endl;
#include "GradeBook.h"
int main()
{
    //creazione di due oggetti GradeBook
    GradeBook gradebook1 ("CS101 Introduzione alla programmazione in c++");
    GradeBook gradebook2 ("pippo");
    //Visualizzazione iniziale
    cout << "Il nome del corso iniziale è: " <<gradebook1.getNomeCorso()
    <<"\n Il docente è: " << gradebook2.getNomeDocente() << endl;
    //Modifica del nome per stare dentro i 25 caratteri
    gradebook1.setNomeCorso( "CS101 Programmare in C++" );
    gradebook2.setNomeDocente("Alex ");
    cout << "Il nome del corso iniziale è: " <<gradebook1.getNomeCorso()
    <<"\n Il docente è: " << gradebook2.getNomeDocente() << endl;
    system ("PAUSE");
    return 0;
} 

Mi sono accorto di aver  postato due volte il Gradebook.cpp (anche 
modifcato) e nn il GradeBook.h
Ciao
Alex
********GradeBook.h********
#include <string>
using std::string;
class GradeBook
     {
     public:
     GradeBook (string);
     void setNomeCorso(string);
     void setNomeDocente (string);
     string getNomeCorso();
     string getNomeDocente();
     void MostraMessaggio();
     private:
             string nomeCorso;
             string nomeDocente;
     };