C++知识点小记
C++知识点小记
一.\(Static\)关键字
静态变量
在变量之前加上关键字static,该变量就被定义成了一个静态变量。
静态全局变量和全局变量
- 它存储在静态区,局部变量存在栈区。
- 在C++中它被默认为初始化为0,C语言是任意的
- 全局变量和静态全局变量的存储方式一样,但是全局变量在整个源代码中都可以使用,静态全局变量只能存在于当前文件中。
静态函数
- 静态函数不能被其他文件使用
- 其他文件可以定义相同名字的函数,不会发生冲突
- 静态成员可以相互访问
- 非静态成员函数可以访问静态成员函数
- 静态成员函数不可以访问非静态成员函数
静态成员存在全局区。
静态成员函数没有\(this\)指针。
二.四类\(cast\)转换
\(C++\)引入了四种类型转换:static_cast,dynamic_cast,const_cast,reinterpret_cast。
1.static_cast
隐式转换,\(eg\):非const转const,void*转指针
static_cast还用于多态向上转换。
2.dynamic_cast
动态类型转换,只用与含有虚函数的类,用于类层次间的转换。
3.reinterpret_cast
万能的,但是有危险
4.const_cast
const变量转非const变量