C++类中的成员指的是成员变量和成员方法。
在成员前加static关键字可以使成员变成静态成员。
因此静态成员包括静态成员变量和静态成员方法。
静态成员的特点:
不管此类创建了多少对象,静态成员只有一个拷贝,这个拷贝被所有属于这个类的对象所共享
注意:
静态成员变量:
1.静态成员变量必须在类中声明,在类外定义
2.静态成员变量不属于某个对象,而是属于类,所有对象共享
3.静态成员变量可以通过类名或者对象名的方式来获取
4.静态成员变量放在private关键字下类外无法访问只能类内访问
静态成员函数:
1.静态的成员函数不能访问非静态的成员变量,可以访问静态的成员变量。因为静态成员函数在编译时就产生了(分配了内存),而普通的成员变量在对象创建时才分配内存,因此无法访问。
2.普通的函数可以访问静态成员变量也可以访问非静态成员变量,成员函数
3.可以通过类名或者对象名访问
class Person {
public:
int m_A; // 普通的成员变量
static int m_B; // 静态的成员变量 在类内进行声明
// 静态的成员函数
static void fun() {
// m_A = 10;
m_B = 2000;
cout << "静态成员函数被调用了" << endl;
}
void fun1() {
m_A = 20;
m_B = 200;
}
};
int Person::m_B = 100; // 静态成员变量在类外定义
Person p1;
cout << p1.m_B << endl;
Person p2;
cout << p2.m_B << endl;
p2.m_B = 1000; // 通过p2修改m_B静态成员变量,p1访问是修改后的结果,静态成员变量被类的所有对象所共享。
cout << p1.m_B << endl; //对象名方式获取
cout << Person::m_B << endl;//类名方式获取
Person::fun();//使用类名方式访问静态函数