ti ringrazio, ma sto impazzendo non sto capendo niente.

Cmq questo e il mio programma, non e' che potresti dividermelo tu??
SPecificando il codice da inserire in tutti e tre i file??
Ad esempio in Main.cpp, mi dici cosa scrivere
codice:
codice
In mio_header.h
codice:
codice
mio_header.cpp
codice:
codice
Ecco tutto il mio codice:
codice:
# include <iostream>
# include <stdio.h>
# include <fstream>
# include <string>
# include <sstream> 

using namespace std;

int ID;

class File
{

 public:
	void ApriFileInScrittura(string NomeFile, std::ios_base::openmode metodo)
	{
		ofstream write(NomeFile.c_str(), metodo); 
	}   
/************************************FINE**************************************/    
    void GeneraID(string NomeFile) 
    {
     ifstream trovaID("ID.txt", ios::in); //ID.txt file contentente il numero                                     // dell'ultimo ID inserito
     if (trovaID)
              {
               trovaID >> ID;
               ID=ID+1;
               trovaID.close();
              } 
              else
              ID=1; 
                 
     ofstream write(NomeFile.c_str(),ios::app); 
     write <<"L;";   /* Imposta FLAG per la CANCELLAZIONE LOGICA*/

///////////////////////////// 
     stringstream s;      //   
     string ss;          //          
     s << ID ;          //
     ss = s.str();     // /* Dimesione dell' ID = 5
     ss.resize(5);    //  dato che ss.resize(5); */
     write <<ss;     //
//////////////////////  
     write.close();
  
  // Aggiorna L'ID che viene scritto sul file ID.txt
     ofstream aggID("ID.txt", ios::out);  
     aggID << ID;    
     aggID.close();                    
    } 
/************************************FINE**************************************/    
    void ScriviCampo(string NomeFile, string Campo, int DimCampo)
    {
     ofstream write(NomeFile.c_str(),ios::app);
     Campo.resize(DimCampo);
     write << Campo;
     write.close();    
    }
/************************************FINE**************************************/    
    void ScriviUltimoCampo(string NomeFile, string Campo, int DimCampo)
    {
     ofstream write(NomeFile.c_str(),ios::app);
     Campo.resize(DimCampo);
     write << Campo << endl;
     write.close();    
    } 
};

    File A1;
    A1.ApriFileInScrittura("PROVA.txt", ios::app);
    A1.GeneraID("PROVA.txt");  
    A1.ScriviCampo("PROVA.txt", "Salvatore", 20);
    A1.ScriviCampo("PROVA.txt", "Ciotola", 20);
    A1.ScriviUltimoCampo("PROVA.txt", "UltimoCampo", 20);
    getchar();
    getchar();