C++では、関数実装ファイルでusing namespace std;
宣言を使用できますか?関数実装で名前空間を使用する
答えて
「機能実装ファイル」とは、.hファイルまたは.cppファイルを意味しますか? (私は通常.cppファイルを "implementation"ファイルと呼びますが、.hファイルは "interface"ファイルです)。
.cppファイルを意味するのなら、もちろんです。それは普通あなたがusing namespace std
と見る場所です。これは、この.cppファイル内のすべてのコードが修飾なしでstd
にアクセスできることを意味します。
.hファイルを意味する場合、はになりますが、そうしないでください。 .hファイルに含めると、.hファイルを含む.cppファイルに自動的に適用されます。このファイルは大量のファイルである可能性があります。あなたは一般的に、インポートする名前空間を他のモジュールに伝えたくありません。共通の.hファイルではなく、すべての.cppファイルに格納することをお勧めします。
"function implementation files"とは、.C/.cppなどのファイルを意味する場合は避けてください。代わりにusing std::cout;
とusing std::endl;
にこれらの2つを注入するだけで<iostream>
のstd::cout
などが必要な場合は、cout
とendl
と書くことができます。
私はあなたがこのような何かを意味すると仮定しています:その場合はそうそして、...
// Foo.h
void SayHello();
を
// Foo.cpp
#include "Foo.h"
using namespace std;
void SayHello()
{
cout << "Hello, world!" << endl;
}
を。しかし、大きなプロジェクトでusing namespace std;
を使用することは悪い習慣と考えられます。
私は、実装ファイルでさえも "名前空間の使用"を避けようとしますが、後で名前の競合が発生する単一の翻訳単位を使用したいとします。 – GameDeveloper
using namespace std;
を次のように関数本体に入れることもできます。これにより、using namespace
ステートメントの範囲が制限されます。
void f() {
using namespace std;
cout << "Foo" << endl;
//..
};
void g() {
cout << "Bar" << endl; //ERROR: cout and endl are not declared in this scope.
};
あなたはヘッダファイルに書き込まれている機能(あなたはいけないそれ自体の本体に名前空間の要素の多くを使用したい場合、これは便利ですが、時にはそれはOKです(例えば、テンプレート)など)が含まれます。
- 1. 名前空間名に変数tclを使用する
- 2. XSLT関数と名前空間
- 3. 名前空間の関数テンプレートのオーバーロード
- 4. 名前空間とバリアント形式の関数定義でJSDocを使用する
- 5. 名前空間で変数を使用する方法は?
- 6. 複数のStruts2名前空間をタイルで使用する
- 7. javascriptグローバル名前空間で関数をスタブ/モックする方法
- 8. Shoud実装ファイルに名前のない名前空間を使用しますか?
- 9. html要素に複数の名前空間を使用する
- 10. イニシャライザリストの名前空間を使用
- 11. 変数の名前空間
- 12. 複数のファイル間で名前空間を使用する方法
- 13. 関数名前空間の関数を値で定義できますか?
- 14. テンプレートインスタンス化の関数内に名前空間シンボルをロードする
- 15. PHPの名前空間と実装のキーワード
- 16. 名前空間: "グローバルとして使用"
- 17. XML上の名前空間の使用
- 18. PHPの名前空間と "使用"
- 19. 名前空間
- 20. 名前空間内の関数にアクセスする方法
- 21. Silverlightの使い方名前空間でJavascript関数を呼び出すには?
- 22. 名前空間でPunditを使う
- 23. WCF契約で名前空間を使用する方法
- 24. PHP 5.2で名前空間を使用する場合ステートメント
- 25. CSSで名前空間を使用する方法は?
- 26. Asp.Net c#プロジェクトで名前空間を使用するには?
- 27. 名前空間内の関数のヘッダファイル? Cでは
- 28. XPathを使用してデフォルトの名前空間(名前空間接頭辞なし)を取得する
- 29. 名前空間内にあるクラスのfriend関数の定義。
- 30. 対処する名前空間にglobal ::を使用する
私は本当にあなたの質問を理解していないようです...あなたはいくつかの情報を与えることができますか? – Stormenet