7

重複の可能性:
「名前空間stdを使用しているのはなぜですか?」C ++の悪い習慣と考えられていますか?

たとえば、人々が使用するコード例をいくつか見てきましたがstd::cout、他の場所using namespace std;では、単純にするために代わりに上部に配置します。一般的にどちらが好ましいですか?

4

3 に答える 3

3

std::cout潜在的な名前の衝突を避けるために使用します。using を使用using namespace std;すると、グローバル名前空間にすべての std 名が入力されます。これらの名前は、あなたまたはチームの他の誰かが作成したクラスまたは関数名と競合する可能性があります。これはC++ faq liteSOでよく説明されています

于 2012-08-15T14:26:06.197 に答える
2

私は個人的に、コードなどを書くときに完全な名前空間の名称を使用しますstd::string。これにより、開発者が使用したい関数である、それを読む人にとって物事がより明確になります。

私は次のことわざを見てきました:

一度書いて、千回読んで...

:)

于 2012-08-15T14:18:44.400 に答える
0

最初に、ヘッダーには絶対に入れるべきではないことに注意してください。これについては、既に認識しているかもしれません。 using namespaceその理由は、それusingを含むすべてのソース ファイルに が取り込まれるためです。

ソース ファイル レベルでも、標準ライブラリ関数とクラスを明示的に修飾することを好みますstd::cout。ただし、場合によっては、便宜上、代わりに特定の使用法を使用します (using std:endlたとえば)。ただし、私は通常、明示的な修飾を好みます。

于 2012-08-15T15:08:59.457 に答える