C ++コードを閲覧しているところですが、何かに気づきました。ソースファイル内main.cpp
std::cout << converter();
次に、コンバーターの定義を探しました。名前空間とクラス名はありません。それから私はtool.cppで見ました
using namespace Ccon::converter;
定義はCcon.cppファイルにあります。
main.cppが呼び出すことができるのはなぜconverter()ですか?
お知らせ下さい。
ありがとう
C ++コードを閲覧しているところですが、何かに気づきました。ソースファイル内main.cpp
std::cout << converter();
次に、コンバーターの定義を探しました。名前空間とクラス名はありません。それから私はtool.cppで見ました
using namespace Ccon::converter;
定義はCcon.cppファイルにあります。
main.cppが呼び出すことができるのはなぜconverter()ですか?
お知らせ下さい。
ありがとう
引数依存の名前検索については、次のリンクを参照してください: http://en.wikipedia.org/wiki/Argument-dependent_name_lookup
コンパイラは、修飾converter()されていないものを見つけることができない場合、使用可能な名前空間を探し、名前と署名が一致する場合にそれらを使用します。
この場合、main.cpp には、この名前空間を定義する Ccon.h ヘッダー ファイルが含まれていると思われるためconverter()、void 引数で a を調べます。