C++知识点总结:https://github.com/huihut/interview
primer c++习题答案:https://github.com/huangmingchuan/Cpp_Primer_Answers
c++资源网:https://github.com/jobbole/awesome-cpp-cn
高并发网络库:https://github.com/yedf/handy
c++知识点:https://www.cnblogs.com/heyonggang/p/3246631.html
学习笔记:https://www.cnblogs.com/llguanli/p/7183257.html
https://www.cnblogs.com/maowang1991/p/3290321.html
https://blog.csdn.net/chris_zhangrx/article/list/6?t=1
一-、作用域符 ::
1、 全局作用域符(::name):用于类型名称(类、类成员、成员变量、成员函数、变量等)前,表示作用域为全局命名空间
2、 类作用域符(class ::name):用于表示指定类型的作用域范围是具体某个类的
3、 命名空间作用域符(namespace::name):用于表示指定类型的作用域范围是具体某个命名空间的
二、命名空间
1、namespace命名主要用途,用来解决命名冲突的问题
2、命名空间下可以放函数、变量、结构体、类
3、必须在全局作用域下声明
4、命名空间可以嵌套命名空间
5、命名空间是开放的,可以随时可入新的成员
三、Using
1、引入命名空间
2、给某一类型定义别名,和typedef作用一样
using 类型别名 = 原类型
3、当一个派生类私有继承基类时,基类的public和protected数据成员在派生类中是private的形式,如果想让这些继承而来的数据成员作为public或者protected成员,可以用using来重新声明。using声明语句中名字的访问权限由该using声明语句之前的访问说明符决定。
4、因为派生类可以重载继承自基类的成员函数,所以如果派生类希望所有的重载版本对于它都是可见的,那么它就要覆盖所有版本或者一个也不覆盖。但是,有时一个类仅需要覆盖重载部分函数,若覆盖所有函数,就太繁琐了。
那么此时,using就派上用场了。只要为重载的成员函数提供一条using声明,这样我们就无需覆盖基类中的每一个版本了。
三、显示初始化数组元素
1、如果指明了维度,那么初始值的总数量不应爱超出指定大小,如果维度比提供初始值数量大,则用提供的初始值初始化靠前的元素,剩下的元素被初始化成默认值。