2017-02-19 3 views
0

Ich möchte über einige Bereich springen, um direkt auf eine statische Variable zugreifen, ohne alle meine Bereich schreiben.Definiere mit dem Bereich innerhalb

nts::CLI::Mode::AMode::Out

wo Out Zeiger auf statische Variable zu dem einen ist, würde ich dort schreibend zugreifen möchten

nts::Out

eine Möglichkeit, dies zu tun, um meine mit prepocessor definieren oder einen anderen Zeiger in Namespace NTS?

Vielleicht ist nur ein Architekturfehler, sollte ich meine statische Variable in nts Namespace setzen?

+0

Warum möchten Sie das tun? Was ist die Motivation hier? Wenn Sie den Umfang des Schreibens reduzieren möchten, können Sie einfach 'using nts :: CLI :: Mode :: Amode :: Out 'verwenden und' Out' glücklich in Ihrem Code verwenden, ohne immer wieder den vollständigen Namespace-qualifizierten Namen schreiben zu müssen – Rishi

+0

Sind 'nts',' CLI', 'Mode' und' AMode' alle Namespaces? –

+0

Nein, NTS ist ein Namespace, andere sind Klasse –

Antwort

1

Der sauberste Weg ist ein Alias, beispielsweise für Ihren speziellen Fall zu definieren:
using Out = CLI::Mode::AMode::Out; innerhalb des nts Namespace.

Natürlich können Sie einen beliebigen anderen Namen Alias ​​definieren, in jeder Ebene der Namespace oder Klasse, wie using O = nts::CLI::Mode::AMode::Out; und O ist der neue Name usw.

Einschließlich des gesamten Namensraum ist in der Regel verpönt, denn wenn die resultierende 'Namensraum Verschmutzung', funktioniert aber auch: using nts::CLI::Mode::AMode;.

Verwandte Themen