名称空间用法

Jér*_*ôme 3 c++ namespaces std

我正在尝试以正确的(或至少是最好的)方式开始使用命名空间.

我试图做的第一件事是避免放在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;
}
Run Code Online (Sandbox Code Playgroud)

如果我省略了行,using std::cout;或者using std::endl编译器会在我尝试使用cout或时抱怨endl.

但为什么不需要这个srand,rand而且time?我很确定他们在std,因为如果我试着专门倒std::在他们面前,我的代码工作正常.

小智 6

如果你使用cstdlib等.它们中的名称放在global和std :: namespaces中,因此您可以选择使用std ::前缀.这被某些人视为特征,并被其他人视为错误.

  • \*咳嗽\*错误\*咳嗽\* (4认同)