Witam,
chciałbym się dowiedzieć, czy da się zrobić tak (lub raczej: jak to zrobili autorzy bibliotek std), ażeby plik, który zawiera zarówno deklaracje jak i definicje- mógł być załączany do wielu plików w jednym projekcie nie wywołując błędu linkera (że taka a taka funkcja/zmienna została już zdefiniowana).
Można spytać:
po co? przecież od tego jest plik nagłówkowy *.h i *.cpp.
Tak, ale sprawa się komplikuje w przypadku użyciu szablonów.
Rozdzielenie klasy na plik nagłówkowy i definicje w innym pliku (cpp) powoduje zazwyczaj błąd (unresolved external symbol).
Poza tym w przypadku małych klas, które używamy w wielu projektach.. bez sensu jest kompilować statycznego lib'a i załączać 1kb do projektu za każdym razem :|
Zauważcie: jak używacie bilbiotek std::vector czy std::string i innych.. Każdy z tych plików zawiera zarówno deklaracje jak i definicje (wystarczy otworzyć te pliki). Załączamy je w dowolnych plikach, a mimo to nie powoduje to błędu.
I moje pytanie brzmi:
Czy ktoś wie jak to osiągnąć?
backticka
. Mam nadzieję, że w przyszłości zastosujesz się do moich rad. Proszę wziąć na uwagę, że piszę te słowa jako moderator, a nie troskliwy użytkownik. Tym razem zrobiłem to za ciebie.