static和const的区别
一、全局区别
const规定变量在全局中是只读的变量,并且它的值无法被修改。
static规定此全局变量只在当前模块(文件)中可见.
二、文件区别
const定义的指针,不赋初值编译时不报错,在初始化时应说明指针的指向。
static不能在定义对象时对变量初始化,不能用构造函数来初始化。
三、函数区别
const只能通过构造函数初始化列表,且必须有构造函数。
static是静态的,属于类的静态成员函数。
四、类区别
const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其const数据成员的值可以不同,所以不能在类声明中初始化const数据成员。
static初始化在类体外进行,初始化时不加该成员的访问权限控制符private,public等,并且初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。