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.


Anmelden zum Antworten