たとえば、OpenCVを使用する場合、 using namespace cv;
と指定しますが、どこでC++が定義されているのかを調べるのはどこですか?C++は "using namespace ..."を使って指定された名前空間のどこを探すべきかを知っていますか?
答えて
using namespace
は、その名前空間で宣言されたものすべてを表示するわけではありません。翻訳ユニットが "見ているもの"だけを公開します。 次のコードを検討し
One.h
#pragma once
namespace ns
{
void function1();
}
Two.h
#pramga once
namespace ns
{
void function2();
}
main.cppに、ここで何が起こった
#include "Two.h" // <-- included only Two.h
using namespace ns;
int main()
{
function2(); // <-- is a ns::function2() located in Two.h
function1(); // <-- error compiler does not know where to search for the function
return 0;
}
は、すべてのプリプロセッサとコンパイラの作成翻訳単位でありますディレクティブが解決されました。それは次のようになります。using namespace …
を使用して指定された名前空間を探しにどこ
namespace ns
{
void function2();
}
using namespace ns;
int main()
{
function2(); // <-- OK. Declaration is visible
function1(); // <-- Error. No declaration
return 0;
}
私は簡単な質問をすることはできますか? http://pastebin.com/fUiDyzcB >>これはどうしますか? –
@BillGates '関数()'のオーバーロード呼び出しはあいまいです。 [あなたはそれを自分で確認することができます](http://coliru.stacked-crooked.com/a/aeda1b74b4749bd2) – teivaz
Ok! Btw答えはちょうど私が尋ねる_intended_のためにちょうどだった...ありがとう –
どのようにC++が知っていますか?
これはありません。
あなたが名前の
using namespace cv;
検索の範囲を使用する場合(クラス、関数、変数、列挙型、などの)展開されています。名前は、通常検索される他のスコープに加えて、cv
名前空間で検索されます。
- 1. C#名前空間セパレータ(。)はどこかで定義されていますか?
- 2. C++ - 私はこのコードを持っている名前空間
- 3. エイリアスに相当する別の名前空間内の 'using namespace'は使用していますか?
- 4. 匿名名前空間はすべての名前空間を囲んでいますか?
- 5. 名前空間宣言で同じ名前空間の使用を定義することをお勧めしますか?私は思っていた
- 6. C++エラーC2143構文エラー: "" 「使って名前空間」の前に
- 7. は、私は、この名前空間を持っている
- 8. 'using'は名前空間内か外部にあるべきですか?
- 9. 間違った名前空間を使用するコード
- 10. 誰もこの "LookAndFeel"の名前を知っていますか?
- 11. どこで名前付きタプルクラスをPythonで定義すべきですか - どの名前空間ですか?
- 12. 誰かがSalesforceのAPEXのXML名前空間を持っていますか?
- 13. html名前空間が指定されているのはなぜですか?
- 14. Rails - 名前空間コントローラを使ってファイルを整理する
- 15. 名前空間とusingディレクティブ
- 16. VHDLに `using namespace std;` eqivalentをどうやって実行できませんか?
- 17. c#Microsoft名前空間の名前はどこで検索できますか?
- 18. 「間違ったドキュメント:名前空間が指定されていません」NETCONFエラー
- 19. すべてのファイルが、私は私が見つけることを行うことができます知っている名前空間またはフォルダ
- 20. どのクラスが属している名前空間を知ることができますか?
- 21. サーブレットコントローラはどのメソッドを使うべきかを知っていますか?
- 22. C++グローバル名前空間のメンバーは既にエラーを定義しています
- 23. NuGetによって追加された名前空間にアクセスできないのはなぜですか?
- 24. スキーマの名前空間を '持っている'と定義されたxml要素に 'null-namespace'が必要なのはなぜですか?
- 25. Grailsはどのようにプロパティファイルを探すべきかを知っていますが、この場所をうまく使うことができますか?
- 26. Irrlichtが間違ったパスのファイルを探しています
- 27. キャッチされていない例外「Firebase名前空間が指定されていません。
- 28. fscanfを使って空行を探す
- 29. パッケージの名前空間はDjangoによって汚染されていますか?
- 30. * shared_ptrを使って*これを返すべきですか?
前処理後、同じファイル内のこのステートメントの前のどこかで定義されています。 – chris
名前空間は現在の翻訳単位にあります。 – songyuanyao
あなたが何を求めているのかはっきりしていませんが、おそらくそれは以下のものです:http://stackoverflow.com/questions/18914106/what-is-the-use-of-using-namespace-std – NathanOliver