实现一个类的多个对象之间的数据共享,需要用到静态数据成员。
定义静态数据成员的格式:static 数据类型 数据成员名; 例:static int num ;
注意:1.静态数据成员与普通数据成员相类似,但前面要加上static关键字。
2.静态数据成员初始化在类外单独进行,而且应在定义对象之前。其初始化格式为:数据类型 类名::静态数据成员名=初始值; 例:int student::num= 0;
3.静态数据成员属于类,可以使用“类名::”访问静态数据成员。
4.静态数据成员在编译时创建并初始化,可以用对象访问静态数据成员。其格式为:对象.静态数据成员 对象指针->静态数据成员
5.私有静态数据成员不能在类外访问,只能通过公有的成员函数访问。
例:计算四位同学的平均分。
#include<iostream>
using namespace std;
class student
{
public:
student(string na,float sc);
~student();
float average();
static int num;
static float sum;
private:
string name;
float score;
};
student::student(string na,float sc):name(na),score(sc)
{
num++;
sum=sum+sc;
}
student::~student(){}
float student::average()
{
return sum/num;
}
int student::num=0;
float student::sum=0;
int main()
{
student s1("sun",90),s2("li",95),s3("he",96),s4("huang",94);
cout<<"这四位同学的平均分: "<<s4.average()<<endl;
return 0;
}