Mah, a me non lo dà. Compila correttamente. Ma sto usando il buon vecchio Borland C++ 3.1 a me tanto caro. Potrebbe a questo punto essere un problema di configurazione del tuo compilatore.

Prova magari a mettere qualcosa nella definizione della funzione in modo da far capire al compilatore (che magari è un po' tocco) che non è sufficiente una funzione pura (nulla), ma che qualcosa c'è. Potrebbe essere che il compilatore, non trovando nulla nel file CPP, prenda la funzione contenuta nel file HPP come definizione e non solo come dichiarazione, e che quindi, ritrovandola dopo, la consideri una doppia definizione.
(vado a spanne, ma in effetti le funzioni che facevo io avevano sempre qualcosa dentro...)

Originariamente inviato da wiligelm
non so perché il compilatore mi dava there were some errors, forse si era impalato, comunque ricorreggo il tutto: quando compilo il file m1.cpp e il file prog.cpp (il main) mi dà no errors, mentre quando faccio il link, mi dà multiple definition of A::makeAThing(void)
sorry :master: