关于类和对象的一个综合练习,介绍几个知识点
题目:使用静态成员函数求学生的平均成绩
#include <iostream>
using namespace std;
class Student//创建Student类
{
public:
Student(int n,int a,float s):num(n),age(a),score(s){}//用参数初始化表对数据初始化,格式参见本例子
void total();//公用成员函数求分数的总和,公用函数可以访问本对象中的普通数据和静态数据
static float average();//静态函数求平均成绩,静态函数可以直接引用静态成员,不能访问非静态成员,如果一定要访问,在函数定义的时候要使用对象名和成员运算符。
private:
int num;
int age;
float score;
static float sum;//定义静态数据成员sum,注意格式
static int count;
};
void Student::total()//类体外定义普通成员函数,普通成员函数可以访问静态数据
{
sum+=score;
count++;
}
float Student::average()//定义静态函数的格式产不多
{
return(sum/count);
}
float Student::sum = 0;//不能用初始化列表对静态数据成员初始化,静态数据成员的初始化参照此格式,因为静态数据是占公共内存,所以必须在类域内初始化
int Student::count = 0;
int main()
{
int n = 0;
Student stu[3]={Student(100,17,86.7),//定义对象数组以及初始化的格式
Student(101,18,79.6),
Student(102,19,90.52)
};
cout<<"您需要求前几名学生的平均成绩:"<<endl;
cin>>n;
for(int i=0;i<n;i++)
stu[i].total();
cout<<"前"<<n<<"名同学的平均成绩为:"<<Student::average()<<endl;
return 0;
}