/*
定义一个学生类,存储学生信息(名字,成绩),定义一个函数,计算学生成绩平均值
*/
#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
Student(string name, float score)
{
m_sName = name;
m_fScore = score;
count++;
cout << "有参构造函数" << endl;
};
virtual ~Student()
{
count--;
cout << "析构函数" << endl;
};
float getScore() const
{
return m_fScore;
}
static int getCount() //静态方法访问静态属性
{
return count;
}
private:
static int count;//计数器 静态属性
string m_sName;
float m_fScore;
};
float getAvgScore(Student** stus)
{
//获取学生个数
int count = Student::getCount();
float sum = 0.0f;
for (int i = 0; i < count; i++)
{
sum += (stus[i])->getScore();
}
cout << Student::getCount() << endl;
cout << sum << endl;
return sum / count;
}
//静态属性必须在类外赋初始值
int Student::count = 0;
int main()
{
cout << "+++++++++" << endl;
Student *s[] = { new Student{"张一",50.1},new Student {"张二",65.1},
new Student{"张三",80.1},new Student{"张四",89.1},new Student{"张五",98.1} };
cout << "+++++++++" << endl;
cout << "平均成绩:" << getAvgScore(s) << endl;
for (int i = 0; i < 5; i++)
{
delete s[i];
}
return 0;
}