C++知识点小记


C++知识点小记

一.\(Static\)关键字

静态变量

在变量之前加上关键字static,该变量就被定义成了一个静态变量。

静态全局变量和全局变量

  1. 它存储在静态区,局部变量存在栈区。
  2. 在C++中它被默认为初始化为0,C语言是任意的
  3. 全局变量和静态全局变量的存储方式一样,但是全局变量在整个源代码中都可以使用,静态全局变量只能存在于当前文件中。

静态函数

  1. 静态函数不能被其他文件使用
  2. 其他文件可以定义相同名字的函数,不会发生冲突
  3. 静态成员可以相互访问
  4. 非静态成员函数可以访问静态成员函数
  5. 静态成员函数不可以访问非静态成员函数

静态成员存在全局区。
静态成员函数没有\(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变量