最近刚学习C++,看了C++ primer和C++ primer plus,看的是一头雾水,最后打算重新理解,不过与C++也混了个脸熟
看了刚开始的c++,有一点感悟,打算写下来。
最初看到std::cout和std::cin是一脸懵逼,也不知道是什么,更别说是using namespace std;即使我看到后面也没理解,因为刚开始C++ primer plus说的是这是防止两个同时用了相同的函数,那么程序就不知道该用哪个,比如说C++ primer plus上说的两个公司同时用的wander()函数。虽然书上先介绍了这个,但我还是一头雾水,或许是我比较笨吧。。。。。
C++ primer plus 914,915页使用名称空间才让我理解它。(其实是初步理解。。。。。)
C++ primer 701~704页是更透彻的理解。(毕竟是进阶书,都是值得看的书)。
其实在标准库中(即iostream)就有他的定义。
下面是在iostream中的定义:
namespace std
{
std::cin;
std::cout;
std::endl;
std::cerr;
std::clog;
}
现在还可能对using有一点陌生,因为我刚开始看书的时候using被介绍为using声明语句,但在这里他用的是using其他的功能,
using指示,就像书上说的using声明和using指示有着很大的差别。using声明只是简单令名字在局部变量中有用,而using指示可以使整个命名空间中的内容都有效。
namespace blip{
int i=16,j=15,k=23;
}
int j=0;
void manip()
{
using namespace blip;//这里可以理解为可以在这个函数中使用blip中的成员
++i; //blip中的i加一
++j;
++::j; //这里用了作用域运算符,表示用的是全局变量中的j
++blip::j; //这里指定了blip中的对象,所以j变为17
int k=97; //局部变量与blip中的对象重名后,用的就是局部变量,局部变量能隐藏命名空间中的成员
++k;
}
注:当主函数中如果只用命名空间的几个成员,最好别引用所有的成员
第一次写博客,也是看了刘大佬( 刘未鹏)的文章才开始写博客