1

C ++コードを閲覧しているところですが、何かに気づきました。ソースファイル内main.cpp

std::cout << converter();

次に、コンバーターの定義を探しました。名前空間とクラス名はありません。それから私はtool.cppで見ました

using namespace Ccon::converter;

定義はCcon.cppファイルにあります。

main.cppが呼び出すことができるのはなぜconverter()ですか?

お知らせ下さい。

ありがとう

4

1 に答える 1

-2

引数依存の名前検索については、次のリンクを参照してください: http://en.wikipedia.org/wiki/Argument-dependent_name_lookup

コンパイラは、修飾converter()されていないものを見つけることができない場合、使用可能な名前空間を探し、名前と署名が一致する場合にそれらを使用します。

この場合、main.cpp には、この名前空間を定義する Ccon.h ヘッダー ファイルが含まれていると思われるためconverter()、void 引数で a を調べます。

于 2013-03-02T08:20:10.480 に答える