【发布时间】:2010-01-22 09:27:50
【问题描述】:
我正在尝试以正确(或至少是最好的)方式开始使用命名空间。
我尝试做的第一件事是避免将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:: 倒在它们前面,我的代码就可以正常工作。
【问题讨论】:
标签: c++ namespaces std