C++类中static的使用
一 static修饰类中的成员变量
//类中用static修饰的成员变量 类内声明 类外初始化
class b
{
public:
static int a;
private:
static int b;
};
int bb::a = 100;//类外初始化
int bb::b = 100;
void test1()
{
//1 是通过对象进行访问
bb b1;
cout << b1.a << endl;
//2 是通过类进行访问
cout << bb::a << endl;//加双冒号是类进行访问
}
二 static修饰类中的成员函数
class s
{
public:
//静态成员函数
//静态成员函数只能访问静态成员变量
static void fun()
{
cout << "调用" << endl;
b = 1;//非静态不能访问
c = 1;
}
//静态成员函数也有访问权限 类外不能访问私有的静态成员函数
private:
static void fun1()
{
}
int b;
static int c;
};
//两种访问方式
void test2()
{
//1 是通过对象进行访问
ss s1;
s1.fun();
//2 是通过类进行访问
cout << ss::fun << endl;//加个双冒号
ss::fun1();//静态成员函数也有访问权限 类外不能访问私有的静态成员函数
}
注意!!!
1 私有静态成员变量还是私有静态成员函数都有访问权限 类外不能访问
2 静态变量存储的位置在全局数据区(静态区) 和全局变量一起存储的
3 静态成员函数只能访问静态成员变量 其他的无法访问
4 非静态的成员函数可以访问静态成员变量和静态成员函数
补充
这只是类中static的使用 还有全局变量和局部变量对static的使用 会再补充