Ciao a tutti, sto tentando di risolvere un problema abbastanza basilare, sto imparando il C++ provenendo dal Java.
Ho creato una classe libri:
File: libri.h
codice:
#include <iostream>
using namespace std;
class libri {
public:
libri();
/*...metodi...*/
protected:
/*...campi....*/
};
File: libri.cpp
codice:
#include <iostream>
#include "libri.h"
using namespace std;
libri::libri(){
cout << "Siamo nel costruttore" << endl;
}
File: usoLibri.cpp
codice:
#include <iostream>
#include "libri.h"
using namespace std;
int main(){
libri l;
}
Le guide che sto seguendo dicono che il processo ottimale per creare classi e' quello di separare in 2 file(.h e .cpp) la dichiarazione dall'implementazione e poi in un altro file .cpp testare la classe (per l'information hiding suppongo).
Ma quando compilo il file usoLibri.cpp il compilatore mi dice che il costruttore non e' definito, perche' ???
Penso che il linker dovrebbe collegare la dichiarazione della classe nel file libri.h con l'implementazione della stessa nel file libri.cpp, ma a quanto pare non lo fa.....
Potete aiutarmi?