静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员。
静态成员分为:
静态成员变量:
(1)所有对象共享同一份数据
(2)在编译阶段分配内存
(3)类内声明,类外初始化
#include<iostream>
using namespace std;
class Student
{
public:
static int num;//类内声明;
};
int Student:: num =0;//类外初始化
void test01()
{
Student p1;
p1.num = 100;
cout << p1.num << endl;
Student p2;
p2.num = 200;
cout << p1.num << endl;
//所有对象共享同一份数据,所以p2 num的改变也会致使p1 num的改变;
//所以输出结果是100 200
}
int main()
{
test01();
return 0;
}
静态成员函数:
(1)所有对象共享同一个函数
(2)静态成员函数只能访问静态成员变量
class Student
{
public:
static void func(int m_num)
{
num = m_num;
//sum=m_num;静态成员函数只能访问静态成员变量
}
static int num;
int sum;
};
int Student::num = 100;
void test01()
{
Student p1;
Student::func(200);//通过类名访问
cout << p1.num << endl;
p1.func(100);//通过对象访问
cout << p1.num << endl;
}
int main()
{
test01();
return 0;
}