Ok, hai ragione, non volevo incasinare troppo la discussione, con tutto il codice.
Ecco una parte più significativa:
Debugger.h
debugger.cppcodice:using namespace std; namespace debugger { enum Attivo {on,off}; enum Modo{append,nuovo}; struct funzione; class Debugger { public: /* METODI PUBBLICI DISPONIBILI AGLI UTENTI */ Debugger(string nomefile,Modo modo); void insert(string nomeFile,string nomeFunzione,Attivo intest,Attivo mess); void insert(string nomeFunzione,Attivo intest,Attivo mess); void start(string nomeFile,string nomeFunzione); void end(string nomeFile,string nomeFunzione); template<typename T> void scrivi(T m ); private: /* Dichiarazione membri privati . . . */ }; }
codice:#include "Debugger.h" using namespace debugger; Debugger::Debugger(string nomefile,Modo modo) { //Implementazione } template<typename T> void Debugger::scrivi(T m ) { mess<<m; FILEoutput=new ofstream(fileOutput.c_str() ,fstream::app); *FILEoutput << mess.str(); mess.str(""); }
file main.cpp
codice:#include "Debugger.h" using namespace std; using namespace debugger; int main() { Debugger d("debug.txt",nuovo); //OK d.insert("main.cpp","main",on,on); //OK d.scrivi<int>(10); //OK in compilazione, errore di Linking d.scrivi("ciao"); //OK in compilazione, errore di Linking return 0; }

Rispondi quotando