静态数据成员与静态数据函数默认的问题
#include <iostream>
using namespace std;
class Student
{public:
Student(int,int,int);
void total();
static float average();
private:
int num;
int age;
float score;
static float sum;
static int count;
};
Student::Student(int m,int a,int s)
{num=m;
age=a;
score=s;
}
float Student::sum = 0;//为何将这两行删掉后编译能通过,但不能执行?
int Student::count = 0;//static在默认的情况下就是 0 啊!?
void Student::total()
{
sum+=score;
count++;
}
float Student::average()
{ return(sum/count);
}
int main()
{
Student stud[3]={
Student(1001,18,100),
Student(1002,19,90),
Student(1005,20,80)
};
int n;//输入学生的个数 3
cout<<"please input the number of students:";
cin>>n;
for(int i=0;i<n;i++)
stud[i].total();
cout<<"The average score of "<<n<<" students is "<<stud[0].average()<<endl;
return 0;
}