Warum wird die Verwendung der Direktive in C ++ nicht empfohlen?

8

Ich habe gelesen, dass die Verwendung von Direktive in C ++ nicht empfohlen wird, indem man sagt, dass man Direktiven niemals in Header-Dateien verwendet. Warum ist es so? Irgendwelche Hinweise für mich?

Danke!

    
skydoor 06.01.2010, 19:54
quelle

4 Antworten

2

using namespace x; ist eine sehr schlechte Idee, da Sie keine Ahnung welche Namen Sie importieren, selbst mit der Standardbibliothek.

Allerdings: using std::cout; und ähnliche Aussagen sind eine sehr gute Idee, weil sie Symbole explizit importieren und den Code lesbarer machen (obwohl es immer noch keine gute Idee ist, sie in den globaler Geltungsbereich in Header-Dateien).

    
James 06.01.2010, 20:02
quelle
4

Wenn Sie über die 'using'-Anweisung sprechen, liegt der Grund dafür, dass Sie sie nicht verwenden, darin, dass Sie

sagen

using namespace std;

in einer Header-Datei, alle Dateien, die diese Header enthalten, werden gezwungen, diesen Namespace zu verwenden, und das könnte Probleme verursachen.

    
zmbush 06.01.2010 20:00
quelle
3

Weil es Arbeitscode brechen kann, wenn Sie versuchen, Ihren Header hinzuzufügen, wenn Ihr Header-Namespace anderen Namespace trampelt, der in dem Arbeitscode der Vergangenheit definiert wurde.

    
Y. Shoham 06.01.2010 19:59
quelle
0

Es ist ähnlich wie no, um statische Variablen in Header-Dateien zu deklarieren. Durch das Hinzufügen von using-Anweisungen in Headerdateien wird der Namespace in CPP-Dateien mit der Headerdatei eingefügt. Es ist nicht erforderlich. Im schlimmsten Fall müssen Sie möglicherweise einige Variablen- oder Funktionsnamen in .cpp ändern, um Namenskonflikte zu vermeiden.

    
cuteCAT 07.01.2010 02:37
quelle

Tags und Links