《C++ Primer》全书第二轮知识点总结 2018.8.13

因为时间比较紧,邻近校招,但C++ Primer去年连码带看搞过一遍,许多细节不记得了,这里就依据一个大神的blog来复习:

https://blog.csdn.net/neicole/article/details/6761314

@ 001:这里提到要用cin.clear, 找到另一篇blog关于cin.rdstate()的用法,ios::goodbit, eofbit, badbit, failbit的用法

https://www.cnblogs.com/tonglingliangyong/p/3908463.html

@ 004:编译器还可以找出的错误:

语法错误:出现C++语言文法上的错误;

类型错误:C++中每个数据项都有其类型;

声明错误:C++程序中每个名字都要先声明后使用

@ 006:1. 类的名字是什么? 2. 它在哪里定义? 3. 它支持什么操作?

这里总结下命名空间的概念:

1. 在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。

可以通过extern声明同一程序中的两个文件中的同名变量是同一个变量。

2. 每个命名空间是一个作用域;命名空间可以是不连续的(即可以在不同地方为命名空间继续添加成员);一旦看到含有完整前缀的名字,就可以确定改名字在命名空间的作用域内;模板特例化必须定义在原始模板所属的命名空间中;全局作用域中定义的名字也就是定义在全局明明空间中,使用隐式方式声明,使用时即::merber_name; 在嵌套的命名空间中定义的名字只在内层命名空间中有效,外层命名空间中的代码想访问他必须在名字前添加限定符;内敛命名空间中的名字可以被外层命名空间直接使用;未命名的命名空间取代文件中的静态声明,其中定义的变量居右静态生命周期。

命名空间可以设定别名: namespace xx = xxx; using声明遵循与过去一样得作用域规则;using指示容易引发二义性错误。

3. 当给函数传递一个类类型对象时,除了在常规作用域查找外,还会查找实参类所属的命名空间;using声明引入重载函数的所有版本。

猜你喜欢

转载自blog.csdn.net/KristinaXu/article/details/81635330
今日推荐