Salve raga, vorrei creare una semplice libreria per gestire i file.

Ora ad esempio, ho scritto il seguente programma:
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();    
    } 
};

int main()
{
    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();
}
Io ora vorrei farne di questo programma una libreria, nel senso che:
tutto il seguente codice, deve stare in un file chiamato "mialibreria.h" e il resto deve essere il mio file.cpp:
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();    
    } 
};
Pero non ci riesco, qualkuno di voi puo dirmi come fare?