名前空間を理解できません。A.cpp:
#include <iostream>
namespace A { int pause = 8; }
int main() {
std::cout << A::pause << std::endl;
return 0;
}
そしてそれは印刷し8
ます。ただし、今は追加using namespace A
して変更A::pause
するだけpause
です。A.cpp:
#include <iostream>
namespace A { int pause = 8; }
using namespace A;
int main() {
std::cout << pause << std::endl;
return 0;
}
ここで、コンパイル エラーが発生します。
A.cpp: In function ‘int main()’:
A.cpp:5: error: reference to ‘pause’ is ambiguous
/usr/include/unistd.h:507: error: candidates are: int pause()
A.cpp:2: error: int A::pause
A.cpp:5: error: reference to ‘pause’ is ambiguous
/usr/include/unistd.h:507: error: candidates are: int pause()
A.cpp:2: error: int A::pause
誰かが何がうまくいかなかったのか説明できますか? を省略できるようにする方法と同様に、using namespace A
を省略できると思いました。行を移動しようとしましたが、同じエラー メッセージが表示されます。で宣言されていると明らかに競合するため、意図的に変数名を選択したことに注意してください。フィードバックをお待ちしております。ありがとう!A::
using namespace std
std::
main()
pause
pause()
iostream