using-Direktive im Header



  • Hallo,
    Wenn ich eine using-Direktive im Header habe,

    class C
    {
    public:
        using Foo = Bar;
    };
    

    wie kann ich die dann in der .cpp nutzen, ohne die dort nochmal auszuschreiben?


  • Mod

    Header sind auch nichts anderes als eine plumpe Textersetzung.

    Wenn bei dir also etwas nicht funktioniert, dann würde es auch nicht funktionieren, wenn du deine Definitionen einfach direkt an den Anfang der Datei geschrieben hättest. Also hast du entweder etwas vor, das grundsätzlich nicht geht, oder du hast irgendetwas anderes falsch gemacht. In beiden Fällen bist du besser bedient, direkt nach deinem Problem zu fragen, als nach dem was du denkst was die Lösung sein könnte.

    Denkst du dran, dass dein Synonym C::Foo heißt und nicht etwa C.Foo oder gar Foo?



  • @SeppJ sagte in using-Direktive im Header:

    Denkst du dran, dass dein Synonym C::Foo heißt und nicht etwa C.Foo oder gar Foo?

    Danke, das wars. So funktionierts natürlich. Ich versuch mal genauer zu beschreiben.

    Ich habe Typen wie Array2D<T>, Point2D<T>, Vector3D<T> bla bla, und dann nehme ich gerne in der Klassendefinition zB using Point = Point2D<int>;.
    In die Klasse selbst, weil man ja im Header sowas nicht benutzen soll, weil es dann global wird.



  • @zeropage sagte in using-Direktive im Header:

    In die Klasse selbst, weil man ja im Header sowas nicht benutzen soll, weil es dann global wird.

    In so einem Fall wäre ein eigener Namespace ggf. die bessere Lösung.



  • Ich weiß.


Log in to reply