Witam,
Mam problem przy podziale mojego kodu na pliki. Posiadam jedną klasę abstrakcyjną A i 3 podklasy dziedziczące z A, w niej też zawarte są funkcje virtual. Podzieliłem każdą podklasę na pliki .h i .cc i jeżeli w więcej niż jednej w pliku .cc będą zawarte ciała moich funkcji virtual z A to powstaje błąd Multiple definition of(nazwa funkcji virtual). Wygląda to tak:
class A{
public:
virtual void f()=0;
}
w pliku .h:
#include"A.h"
class B : public A{
public:
void f();
}
w pliku .cc:
#include"B.h"
void B::f() {/*ciało funkcji*/}
Jeżeli mam tylko jedną podklasę tak podzieloną na pliki .h i .cc to nie ma problemu z kompilacją, ale jeżeli podzielę kolejną podklasę z samego pliku .h na .h i .cc i w .cc znajdą się ta sama funkcja virtual co w B to już kompilator sygnalizuje błąd. Co powinienem zmienić ?