1、C++ 中 static 的作用
static
不考虑类的情况下:
(1)隐藏作用,所有不加 static 的全局变量和函数具有全局可见性,可以在其他文件中使用,而加了之后只能在该文件所在的编译模块中使用; (2)默认初始化为 0,包括未初始化的全局静态变量和局部静态变量,都存在全局未初始化区; (3)静态变量在函数内部定义,始终存在,且只进行一次初始化,具有记忆性,作用范围和局部变量相同,函数退出后仍然存在,但是不能使用;
考虑类的情况下:
(1)static 成员变量,只与类关联,不与类的对象关联。定义时要分配空间,不能在类声明中初始化,必须在类定义体外部初始化,初始化时不需要标示为 static,可以被非 static 成员函数任意访问。 (2)static 成员函数,不具有 this 指针,无法访问类对象的非 static 成员变量和非 static 成员函数,不能被声明为 const, volatile 和虚函数,可以被非 static 成员函数任意访问。
2、C++ 中的顶层 const 和 底层 const
顶层 const: const 修饰的变量本身是一个常量;
底层 const: const 修饰的变量所指向的对象是一个常量;
3、移动构造函数 & 拷贝构造函数