Salve a tutti,
sto cercando di implementare un progetto in C++ sotto windows, mediante l'utilizzo di devc++.
Il progetto è composto di un file header in cui sono dichiarate le classi:

esami.h
codice:
#ifndef _DB_ESAMI
#define _DB_ESAMI
#include <iostream>
#include <string>
using std::string;
class esame {
  public:
      esame();
      esame(string);
      esame(string,int);
      string getEsame();                   // restituisce il nome dell'esame 
      int getVoto();                       // restituisce il voto ottenuto per l'esame se sostenuto 
      void setVoto(int);                   // imposta il voto ottenuto per l'esame 
      void setEsame(string);               // imposta il nome dell'esame 
      void setSostenuto(bool);
      bool isSostenuto();            // restituisce true se l'esame è stato sostenuto 
       
  private:
      string nome_esame;
      bool sostenuto;
      int voto;
};

/*------------------------------------------------------*/

class studente {
  public:
     studente(); //imposta i nomi di default dei 5 esami e i rispettivi flag sostenuto a false 
     studente(string, string, string, string, string); // imposta in nomi dei 5 esami usando i parametri nome1, ... e i rispettivi flag sostenuto a false 
     void setMatricola( string);
     void setNome(string );
     void setEsame(int ,int); // imposta il voto dell'esame i-esimo 
     string getMatricola();
     string getNome();
     int getNumEsami();  //restituisce 5 (numero massimo di esami da sostenere) 
     int getVotoEsame(int); 
     string getNomeEsame(int);
     bool getSostenuto(int) ;
     float getMedia();// restituisce la media degli esami sostenuti 
     void printStudente(string ); //visualizza tutte le informazioni dello studente compresi gli esami sostenuti e i rispettivi voti 
     

  private:
      string nome_studente;
      string matricola;
      int numero_esami; 
      esame esami[5];
};

/*------------------------------------------------------*/

class studenti {
      public:
      studenti();
      void print_studenti();
             
      private:
      studente stud[3];             
              
};

#endif /* _DB_ESAMI */
Di un sorgente che implementa i metodi, ma non ancora tutti gli ho sviluppati

esami.cpp
codice:
#include "esami.h"
esame::esame()
{
   setVoto(0);                  
   setEsame("NULL"); 
   setSostenuto(false);
}

esame::esame(string nome_esame)
{
   setVoto(0);                  
   setEsame(nome_esame); 
   setSostenuto(false);
}

esame::esame(string nome_esame,int voto_esame)
{
   setVoto(voto_esame);                  
   setEsame(nome_esame); 
   setSostenuto(true);
}

string esame::getEsame()                   
{
     return esame::nome_esame;
}

int esame::getVoto()                    
{
     return esame::voto; 
}

void esame::setVoto(int votazione)
{
     esame::voto=votazione;
     setSostenuto(true);
}

void esame::setEsame(string nome_e)               
{
     esame::nome_esame=nome_e;
}
void esame::setSostenuto(bool sost)
{
     esame::sostenuto=sost;
}
bool esame::isSostenuto()            
{
     return esame::sostenuto;
}
      
/*---------------------------------------------------------------*/      
 
studente::studente()
{
   setNome("");
   setMatricola("");
   studente::numero_esami = 5;
                             
}

studente::studente(string esame1, string esame2, string esame3, string esame4, string esame5) 
{
   setNome("");
   setMatricola("");   
   studente::numero_esami = 5;
   
   esami[0].setEsame(esame1); 
   esami[1].setEsame(esame2); 
   esami[2].setEsame(esame3); 
   esami[3].setEsame(esame4); 
   esami[4].setEsame(esame5); 
       
}

void studente::setMatricola(string matr)
{
     studente::matricola=matr;
}
void studente::setNome(string name)
{
     studente::nome_studente=name;
}
void studente::setEsame(int num_esame ,int voto) 
{
     esami[num_esame].setVoto(voto);
}
string studente::getMatricola()
{
       return matricola;
}
string studente::getNome()
{
       return nome_studente;
}
int studente::getNumEsami()  
{
       return numero_esami;
}
int studente::getVotoEsame(int num_es)
{
    return esami[num_es].getVoto;
}
string studente::getNomeEsame(int num_es)
{
    return esami[num_es].getEsame;  
}/*
bool getSostenuto(int)
{
      
}
float studente::getMedia()
{
      
}
void studente::printStudente(string )
{
     
}

/*---------------------------------------------------------------*/      
/*
studenti::studente()     
{
}
void studenti::print_studenti()
{
}

*/
Da un main per la prova dei metodi, anchesso non ancora del tutto completato

main.cpp
codice:
#include "esami.h"

using namespace std;
int main(int argc, char *argv[])
{
   esame asd;
   esame asd2("ASD2");
   esame asd3("ASD3",30);

   
   cout << "nome esame: " << asd.getEsame() << endl;
   cout << "voto: " << asd.getVoto() << endl;
   cout << "sostenuto: " << asd.isSostenuto() <<endl << endl;
   
   cout << "nome esame: " << asd2.getEsame() << endl;
   cout << "voto: " << asd2.getVoto() << endl;
   cout << "sostenuto: " << asd2.isSostenuto() <<endl << endl;
   
   cout << "nome esame: " << asd3.getEsame() << endl;
   cout << "voto: " << asd3.getVoto() << endl;
   cout << "sostenuto: " << asd3.isSostenuto() <<endl << endl;
   
   
    system("PAUSE");
}
Quando provo a compilare riscontro i seguenti errori:,
codice:
 C:\Users\Neptune\Desktop\Asd\laboratorio\3-11-2010\esami.cpp In member function `int studente::getVotoEsame(int)': 
102 C:\Users\Neptune\Desktop\Asd\laboratorio\3-11-2010\esami.cpp argument of type `int (esame::)()' does not match `int' 
 C:\Users\Neptune\Desktop\Asd\laboratorio\3-11-2010\esami.cpp In member function `std::string studente::getNomeEsame(int)': 
106 C:\Users\Neptune\Desktop\Asd\laboratorio\3-11-2010\esami.cpp conversion from `<unknown type>' to non-scalar type `std::string' requested 
 C:\Users\Neptune\Desktop\Asd\laboratorio\3-11-2010\Makefile.win [Build Error]  [esami.o] Error 1
Si riferiscono entrambi al file sulla dichiarazione dei metodi e la linea 102 riguarda la classe studente::getVotoEsame dove non fa altro che far ritornare "esami[num_es].getVoto;"

la linea 106 si riferisce al metodo subito dopo, ovvero a studente::getNomeEsame, dove anche qui non fa altro che ritornare "esami[num_es].getEsame; ".

Non riesco prorpio a capire che sono quei due errori perchè i tipi sembrano essere tutti giusti e non riesco a riscontrare altri generi di errori.

Vi ringrazio in anticipo per ogni eventuale aiuto,
Neptune.