Sono alle prese con il C++ da meno di due giorni...molto bello, ma continuo a preferire il C puro (voglio dire, tanto vale usare java, se si vuole sprecare memoria...)
cmq, ho un problema che probabilmente è ultrastupido, ma proprio per questo motivo...non riesco a risolverlo!
ho il linker che non riesce a risolvermi un oggetto 'Graph", nonostante il file in cui è definito/implementato sia stato compilato correttamente. Per completezza vi posto il risultato del mio make:
codice:
theclue@Asher ~/src/BFS $ make all
g++ -c -Wall nodelist.cpp
g++ -c -Wall testque.cpp
testque.cpp: In function ‘int main()’:
testque.cpp:8: warning: unused variable ‘pippo’
g++ -c -Wall graph.cpp
g++ testque.o nodelist.o graph.o -o testque
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: Undefined symbols:
Graph::Graph()
collect2: ld returned 1 exit status
make: *** [testque] Error 1
ma la cosa strana è che il file testque è
codice:
int main(void){
Graph* pippo = new Graph();
Graph graph;
}
...ma 'pippo' non da nessun errore!!! Come è possibile?
EDIT: trovato l'errore, ed era come ovvio stupidissimo...una dichiarazione di costruttore quando invece usavo il costruttore derivato dalla classe padre di Graph. Però, per mera curiosità accademica, continuo a chiedermi perché 'pippo' non dava quell'errore...