关于命名空间
在写我的第一个C++程序,简单的符号输出,第一次写的程序如下:
```C++
include <iostream>
int main(){
int tries = 0;
cout << "Are you ready for try #"
<< ++tries << "?\n";
return 0;
}
编译结果出现了错误:
9 2 E:\计算机公开课学习\C++\example\main.cpp [Error] ‘cout’ was not declared in this scope
他说没有声明,我一直以为是include
出现了问题,但是整个程序里只涉及int
型变量,既不涉及布尔,也不涉及string
型,所以只include <iostream>
就够了。所以问题不出在这。后来翻阅《Essential C++》 的第一章 ,看到了需要包含命名空间,加上
using namespace std;
这一条语句之后,程序可以正确执行了。
关于命名空间,有如下的几点解释:
1 .
using
和namespace
都是C++中的关键字。std
是标准库所驻之命名空间的名称,标准库所提供的任何事物(诸如string class
以及cin
cout
这两个 iostream 类对象)都被封装在std 中 。
2 . 命名空间是一种将库封装起来的方法,避免和应用程序发生命名冲突的问题。
3 . *若要在程序中使用string class
以及cin
、cout
这两个iostream
类对象,我们不仅需要包含<string>
<iostream>
头文件,还得让命名空间曝光,即使用
using namespace std;
语句。*