现在的位置: 首页 > 综合 > 正文

static和const区别

2016年09月27日 ⁄ 综合 ⁄ 共 580字 ⁄ 字号 评论关闭


const修饰变量,就成了一个常量,常量就是一定不可以改变值的变量。初始化之后,任何赋值都是非法的。
static修饰变量,名为:静态变量,含义是在内存中只有一份保存这个变量的地址,独一无二的。在面向对象中使用,代表为各个子类所共享的一份地址,任何子类都可以修改它,一旦修改,从此修改。它是属于整个基类的,不独属于任何一个子类。
const修饰方法,代表这个方法不可以改变任何的变量。
static修饰方法,代表这个方法除了static变量可以修改,其他非static变量都不可以使用。(为防止修改,连用都不行)。
const修饰类,这个没有,不过可以修饰对象,这样的话它就只能访问const成员函数。
static修饰类,c++没有这种用法,java有,常用在修饰匿名内部类。

既然说到了static,就只好也讲讲this。因为this的概念正好是用来和static相对的。static是一个全局共享的东西,它住的是别墅,如果没有说明static那么这个类变量或者类的成员函数就是随着各个对象存在的,即依赖于各个对象,只有申明或者创建了对象,变量的值和成员函数才存在意义,在内存中才会有“地方住”(而且是住在和对象同一块地址)。
那么,找别墅好找,找变量或者成员函数呢,每个对象虽然不同,变量的值也会(可能)不同,但是变量名字都是一样的,区分A 的x和B的x就是靠this。

抱歉!评论已关闭.