2017-06-07 6 views
0

Also habe ich gerade als Praktikant gestartet und der Code, an dem ich arbeiten soll, ist verstreut in 10 verschiedenen Verzeichnissen und 100 Dateien und wer weiß wie viele Namespaces. Ich habe noch nie damit gearbeitet, und ich bin wirklich verwirrt, wie sie alle miteinander verbunden sind.Was bedeutet etwas :: etwas :: etwas gemein (C++)?

Ich halte diese Art von Aussagen einen nach dem anderen, ex sehen:

using something10::something2::something6; 
using isThisANamespace::iHaveNoIdeaIfThisIsAClassNameOrWhat::something599; 
using randomName::otherRandomName::randomName99999; 
using something4::something3::something8766678788787987987698; 

Jedes Mal, wenn ich versuche, was zu Google verwenden, funktioniert aber ich Ergebnisse nur bei der Verwendung von Namespace finden. Verwenden Sie jetzt nur eine kürzere Art der Verwendung von Namespaces? Einige der Dinge, die sie verwenden, scheinen jedoch Ordnernamen und Dateinamen zu sein. Mein Firmen-Mentor kennt C++ nicht, also kann er mir leider nicht helfen.

Auch, wenn dies alle Namespaces sind, würde nicht so viele von ihnen Konflikt? Kann man namespace :: classname :: function aufrufen? Und wenn Sie dies tun, müssen Sie immer noch den Dateinamen für diese Klasse angeben?

Bitte helfen Sie mir lernen, wie eine Funktion in einem anderen Verzeichnis, das auch in 4 Namespaces ist begraben. Ich bin sehr verloren.

+0

„und wer weiß, wie viele Namensräume“ - immer ein sehr schlechtes Zeichen; Die Architekturastronauten waren beschäftigt. Und BTW, Dateinamen und Namespaces haben keine Beziehung zueinander in C++. –

+1

Sie wurden als Praktikantin eingestellt und konnten keinen Mentor finden, der Sie betreuen könnte? Das ist kein gutes Zeichen. Sie sollten einen von [diesen] (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) bekommen. Sie finden "using" im Index. – molbdnilo

+0

[Erinnert mich an etwas, das etwas vom Thema abweicht] (https://www.youtube.com/watch?v=0oGMbAIcXCQ) – user4581301

Antwort

1

Dies ist eine using-Deklaration. Es fügt einen einzelnen-Namen aus einem anderen Namespace in den aktuellen Bereich ein, damit es ohne Einschränkung verwendet werden kann. Es ist nicht dasselbe wie eine using-Direktive, die mit using namespace beginnt.

-1

Wenn es wirklich nur zufällige Namensgebung ist, dann ist es sehr, sehr schlecht. Aber Ich hoffe, es ist nur Ihre persönliche Vision, als Anfänger in C++, und in Wirklichkeit gibt es einen guten Code, aber ein bisschen komplex.

Ich weiß nicht, Ihren Hintergrund, welche Sprachen Sie kennen, also würde ich sagen, dass Namespaces irgendwie Boxen sind. Sie können sehr gute, hierarchisch strukturierte Module \ Subsysteme aufbauen. Ich empfehle Ihnen, nicht in Panik zu geraten, Papier zu nehmen und zu versuchen, alle Namespaces, ihre Beziehungen, was in ihnen ist (Klassen, Strukturen, vielleicht Funktionen) und Ihr eigenes Verständnis für ihre Zwecke zu schreiben.

P. S. Entschuldigung für schlecht Englisch. Dieses Thema ist sehr nah für mich, aber meine Schreibfähigkeiten in Englisch sind nicht sehr gut für eine freie Konversation darüber. Ich hoffe, Moderatoren werden Tippfehler beheben.