[C++] pragma once

0

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

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
  1. ODR = One Definition Rule
  2. Nie, bo załączysz tylko wybraną specjalizację szablonu z reguły.
0

Dzięki chłopaki

1 użytkowników online, w tym zalogowanych: 0, gości: 1