Wird die komplette Headerdatei in eine Datei kopiert?
-
Hi,
ich hab es so gelernt:
#include <iostream> bewirkt das der gesamte inhalt von iostream und iostream.cpp in die Datei kopiert wird wo das #Include ist.
Stimmt das oder wird wenn man z.b. nur eine klasse / methode nutzt nur eben diese klasse / diese klasse + die eine methode kopiert?
-
Sie wird vom Präprozessor komplett reinkopiert. Die angegebene Datei (iostream), nicht die iostream.cpp. Die iostream wird natürlich intern weitere Dateien einbinden ...
-
(Fast) Alle Header-Dateien sind aber von einem
#ifndef __MyHeader_h__ #define __MyHeader_h__ ... #endif
Block (oder etwas Äquivalentem) eingerahmt, was dazu führt, dass die Header Datei nur einmal eingebunden werden.
LG, J.
-
Deklarationen gibt es im fertig compilierten Programm nicht mehr. Die braucht der Compiler nur zur Übersetzung.