Niestety nie da się podzielić klasy z szablonami na 2 pliki ".h i .cpp", więc mam wszystko w pliku ".h"
Następnie chce aby inna klasa dziedziczyła po tej klasie z szablonami. Niestety w tej "drugiej" klasie musiałbym znowu zrobić wszystko w pliku ".h" bo potrzebne są szablony... Da się to jakość obejść ?
0
2
Możesz definicje pisać w .cpp, deklaracje w .h, ale musisz na końcu headera zaincludować ten .cpp i nie możesz pliku .cpp kompilować oddzielnie (tzn musi to być kompilowane tak jak w przypadku samego .h, za każdym razem).
1
Możesz explicite definiować instancje szablonu w pliku .cpp, wtedy wystarczą Ci same deklaracje. Możesz inkludować pliki .cpp efektywnie czyniąc z nich nagłówki (więc jak już to lepiej podziel nagłówki na template.h
i template_impl.h
, lub template_fwd.h
i template.h
)
Najłatwiej po prostu całość dawać do jednego nagłówka.
W C++17 być może moduły rozwiążą ten problem.