#include<iostream>
using namespace std;
class Student
{
private:
int num;
int age;
float score;
static float sum;//声明静态数据成员
static int count;//声明静态数据成员
public:
Student(int n,int a,float s);//声明构造函数;
void total();//成员函数;
static float average(); //声明静态成员函数;
};
int main()
{
Student t[3]=//定义对象数组t,并将其初始化;
{
Student(500,18,80),
Student(501,19,81),
Student(502,20,82),
};
int n;
cout<<"please input the number of student"<<endl;
cin>>n;
for(int i=0;i<n;i++)
{
t[i].total();
}
cout<<"the average score of"<<n<<"student is "<<Student::average()<<endl;
return 0;
}
float Student::sum=0;
int Student::count=0;
Student::Student(int n,int a,float s)
{
num=n;
age=a;
score=s;
}
void Student::total()
{
sum+=score;//因为sum是静态变量,得到的结果保存在自己的空间,不属于任何单位;
count++;//count也是静态变量;
}
float Student::average()
{
return(sum/count);
}
/*程序解析,其实这并不是一个很难理解的概念,通过例子可以知道,这个静态变量的意思就是说
每次它运算之后就会保存结果,不会释放掉,保留原来的值进行下一步运算; */