Unterschied using/include?



  • Hallo,

    ich versteh nicht genau wo der unterschied zwischen using namespace und #include ist?

    Kann mir vllt. jemand den wesentlichen Unterschied nennen?

    Danke



  • #include ist eine simple Kopie der includierten Datei in die aktuelle Datei.

    using macht den Namespace in der aktuellen (und jeder, die diese includieren) Datei bekannt. Du kannst also Klassen/Funktionen/Variablen innerhalb eines Namespaces nutzen, ohne den Namespace extra vor die Klasse/Funktion/Variable zu schreiben.

    kleine Beispiele:

    blub.h:

    namespace meinNamensraum
    {
        int testfunc(int x)
        {
            return x*2;
        }
    }
    

    test.cpp:

    #include "blub.h" //Inhalt der Datei wird in test.cpp eingefügt.
    
    int n = testfunc(18); //funktioniert nicht, da kein testFunc im globalen Namespace existiert
    int f = meinNamesraum::testfunc(18); //funktioniert, da der Namesraum exklusiv angegeben wurde
    

    test2.cpp:

    #include "blub.h" //Inhalt der Datei wird in test2.cpp eingefügt.
    
    using namespace meinNamensraum;
    
    int n = testfunc(20); //funktioniert, da der Namesraum "meinNamesraum" in test2.cpp bekannt gemacht wurde.
    


  • dankeschön 🙂


Anmelden zum Antworten