Witam,
Zastanawiałem się czemu w pliku nagłówkowym umieszcza się dyrektywę zabezpieczającą czy będzie to pragma once jak w vs czy też dyrektywa preprocesora #ifndef. No bo skoro deklaracje mogą się powtarzać to czemu się przed takim czymś zabezpieczać a czy może chodzi tu raczej o funkcje składowe inline, które są zadeklarowane w ciele klasy?
Kolejne pytanie jakie mi się nasunęło i tu na pewno uzyskam na nie odpowiedź: czy jeśli do swojego pliku .h czy też .cpp załączam załóżmy <algorithm> i w swoim programie korzystam z jednej funkcji, która jest tam (<algorithm>) zadeklarowana to czy mimo wszystko cała zawartość tego pliku zostanie do mojego programu załączona czy też załączona zostanie tylko ta deklaracja, którą ja wykorzystałem?
Ciekaw jestem odpowiedzi.
Z góry dzięki.
0
0
Bo weźmy na przykład iostream. Masz swój nagłówek w którym to inkludujesz. Potem ją komuś udostępniasz a on nie wgłębiając się w nią inkluduje ją jeszcze raz i co?? Redefinicja typów ( klas )
0
- ODR = One Definition Rule
- Nie, bo załączysz tylko wybraną specjalizację szablonu z reguły.
0
Dzięki chłopaki