一.类的静态成员
静态成员是声明为static的成员,在类的范围内所有对象共享该数据。
静态成员如果是公有的可以直接访问,访问格式:
①类名::静态成员
②对象名.公有数据成员
③对象指针->静态成员
二.静态数据成员
特点:静态数据成员不属于任何对象,它在程序编译时就创建并且初始化。
静态数据成员必须进行初始化,而且通常在类外单独定义和初始化
三.静态成员函数
1.定义:在函数定义前加上static
2特点:
①静态成员函数不访问类中的非静态成员
②静态成员函数没有this指针
③既可以在类内定义,也可以在类外定义(定义时候前面不加static)
④属于类本身,不属于任何对象
举个栗子
Class Student
{
public:
static int count; //班级人数
static double total;//班级总分
Student(double score)//构造函数
{
this->score=score;
count++;
total+=score;
}
static double getTotal()
{
return total;
}
private:
double score;//个人的分数
};
int Student::count=0;//静态数据成员的初始化
double Student::total=0;
int main()
{
Student a(70);
Student b(80);
cout<<Student::getTotal()<<endl;
Student c(90);
cout<<a.count<<endl;//此时会打印输出3,因为已经创建了三个对象,count是共享的
return 0;
}