标签:初始化 add 静态成员函数 其它 私有 不包含 没有 行修改 成员函数
一 static的使用 (作用域和存储方式)
1.作用域---------->隐藏
静态函数跟静态全局变量的作用类似 (静态函数不能被其它文件所用; 其它文件中可以定义相同名字的函数,不会发生冲突)
int a = 10;
void add()
{
static int a=0; //对该函数进行隐藏,只作用于该函数内
printf("a = %d",a);
}
int main()
{
` a++;
add();
printf("a = %d",a);
}
结果 : a=0 a=10;
函数(static 里面不包含this指针)
a.静态函数只能访问静态成员变量(不需要this指针)
b.静态函数不能访问普通成员函数,反之成立(静态成员函数没有this指针)
2. 存储方式-------------->共有的(它的值会被保存,下次调用仍保持上一次数值)
a.局部变量 : 在该函数执行变量结束后,该变量不会被释放,继续保存
b.全局变量 : 表示当变量在全局内都可以访问
c.类成员变量 : 表示这个变量为全类所有的(所有对象都公用这个变量,它不是某一个对象的私有的)
二 const的使用 (只具有读的工能)
因为this指针为常量,不能变化,它和static成员函数类似,普通函数可以访问常成员函数,反之则不成立.常成员函数只能访问常成员变量
三 不同点
static : 为静态变量,只和类有关系,和对象无关,即使没有对象也可以调用静态函数和变量.
数据类型 类名::静态数据成员名=值 int Test::a = 10;
const : 初始化必须有构造函数初始化,不同对象const的数值不一样.
标签:初始化 add 静态成员函数 其它 私有 不包含 没有 行修改 成员函数
原文地址:https://www.cnblogs.com/liunx1109/p/9609072.html