私は名前空間を正しい(または少なくとも最良の)方法で使い始めようとしています。
私が最初にやろうとしたことusing namespace xxx;
は、ファイルの先頭に置かないようにすることでした。using xxx::yyy
代わりに、私は可能な限りローカルにしたいと思います。
これを説明する小さなプログラムは次のとおりです。
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
using std::cout;
using std::endl;
srand(time(0));
for(int i=0; i<10;++i)
cout << rand() % 100 << endl;
return 0;
}
using std::cout;
行またはを省略した場合、またはusing std::endl
を使用しようとするとコンパイラが文句を言います。cout
endl
しかし、なぜこれは、、およびに必要ないのsrand
ですrand
かtime
?std
私がそれらの前に具体的に注ぐことを試みた場合std::
、私のコードは正常に機能しているので、私はそれらが入っているとかなり確信しています。