#include<iostream>
using namespace std;
class student
{
public:
student(int a, int b, float c) :num(a),age(b),score(c) {};//静态不能在构造初始化
void total();
static float average();
static float sum;
private:
int num, age;
float score;
//静态数据必须类外定义26 27行
static int count;
};
void student::total() {//公用也可以使用静态数据成员
sum = score + sum;
count++;
}
float student::average() {// static float student::average() {} 会报错
return (sum / count);
//静态没有this指针所以只能调用静态数据成员;
}
float student::sum = 0;//静态类外定义
int student::count = 0;
int main() {
student stu[3] = {//对象数组
student(1,56,70),
student(2, 13, 79),
student(3,16,98)
};
for (int i = 0; i < 3; i++)
{
stu[i].total();
}
cout << student::sum << endl;//直接调用静态数据成员
cout<<student::average();//调用静态成员函数
}
结果:
247
82.3333
注释挺全的看注释吧。