Generische Namespaces einbinden



  • Hi
    Ich programmiere gerade und möchte eine generische Liste verwenden. Dazu muss ich allerdings den namespace "System.Collections.Generic" benutzen. Ich bekomme jedes mal eine Fehler Meldung.
    Der Code lautet wie folgt:

    #include <iostream>
    //#include <list>
    #include <string>
    #include <string.h>
    
    using namespace std;
    namespace System.Collections.Generic;
    

    Auch wenn ich using vor das "namespace" schreibe bekomme ich eine Fehlermeldung. Es tut mir leid für diese dumme Frage. Vielen Danke für die Hilfe


  • Banned

    Danke für die Frage, ich wusste noch nicht, dass kaskadierende Namensräume möglich sind in c++. 🙃


  • Mod

    Heißer Tipp wenn du nach Hilfe zu Fehlern fragst: Nenn den Fehler!

    Geschachtelte Namespaces werden in C++ mit :: getrennt, nicht mit ..

    Es gibt nichts in deinem Code, woher dieser Namespace kommen sollte. Jedenfalls weder aus iostream, noch string, noch list. Ganz bestimmt nicht aus string.h, das ist C, was überhaupt gar keine Namespaces kennt, und solltest du daher sofort vergessen.

    System.Collections.Generic klingt schwer nach C# oder C++/CLI. Sei dir sicher, welche Sprache du sprichst! C, C++, C++/CLI, C# sind jeweils komplett unterschiedliche Sprachen!

    Generische Listen in C++ ist die std::list, eben aus dem Header list und im Namespace std, nix mit System.Collections. Ob das jetzt ist, was du suchst, oder ob du eigentlich lieber eine ganz andere Sprache sprechen möchtest, kannst nur du wissen.

    Auch wenn ich using vor das "namespace" schreibe bekomme ich eine Fehlermeldung

    Noch ein Tipp: Herumraten wird niemals zum Erfolg führen. Dazu sind die Sprachen mit "C" im Namen viel zu kompliziert. Sie akzeptieren so gut wie alles, was man schreibt, aber ein einzelnes Zeichen kann (und wird!) den Sinn eines Ausdrucks komplett verkehren. Du musst von jedem einzelnen Zeichen in deinem Program genau wissen, wo und warum du es setzt.

    Hier ist das Schreiben oder Auslassen eines ganzen Wortes natürlich erst recht so ein Fall. namespace alleine deklariert einen Namespace, using namespace nutzt ihn; was ihn quasi aufhebt, also praktisch das Gegenteil von namespace alleine.


Log in to reply