静态成员变量类中定义,类外初始化 所有对象共享同一份数据
既可以通过对象访问,也可以通过类名访问
静态成员变量和函数不属于某一个对象,而是属于某一个类
普通成员变量是属于每个类对象
class Base
{
public:
static int num;
};
int Base::num = 100;
class Son :public Base
{
public:
static int num;
};
int Son::num = 100;
int main()
{
Son s;
/*通过对象访问*/
cout << s.num << endl;
cout << s.Base::num << endl;
//通过类名访问
cout << Son::num << endl;
cout << Son::Base::num << endl;
system("pause");
return 0;
}
静态成员函数只能访问静态成员变量 普通成员函数可访问静态成员变量、也可以访问普通成员变量。
所有对象共享同一个函数 所以不需要创建对象也可以访问,不属于某一个对象
当静态成员函数访问非静态变量时,函数体内无法区别访问的是哪个对象的成员变量