对上次内容的补充:通过例题了解静态成员的使用

上次突发奇想写了一篇博客来记录自己学到的内容,但是上次遗留了个问题,就是静态成员的使用。为了使自己记忆深刻,就通过解答简单的题目的方式来写这篇博客,另外也马上到期末了,就算是自己对类与对象这部分的一个小小的复习。

例:定义一个student类,类的定义中包括:一个数据成员分数score,两个静态数据成员总分total和学生人数count,成员函数scoretotalcount(double s)用来设置分数、求总分和累计学生人数。静态成员函数sum()用于返回总分,静态成员函数average()用于求平均值。

在写程序之前我们先分析一下题目中要点:

1.首先需要定义一个类,类名为student,而这个类中的公有成员有函数scoretotalcount(double s)、sum()、average(),而私有成员有以下几种数据成员score、total(静态)、count(静态)。

2.第二步,来分析类中的几个成员函数分别有什么作用。显而易见,函数scoretotalcount(double s)需要设定分数、求总分和累计学生人数,那么思路来了:函数中定义的变量s明显是用来存放分数的,所以让score=s即可,类中定义的静态数据成员total用来存放总分,所以有total+=score,静态数据成员count用来累计学生人数,累计时有count++。而函数sum()中只需要return total即可,average()只需return total/count即可。需要注意的是,要将total和count初始化为0。

3.关于主函数,由于需要一个个输入学生的分数并累计,所以需要另外写一个循环语句。

分析到这里思路已经很清晰了,接下来便开始写程序了。以下是写好的代码:

#include<iostream>
using namespace std;
class student
{
double score;
static double total, count;
public:
void scoretotalcount(double s)
{
score = s;
total += score;
count++;
}
static double sum()
{
return total;
}
static double average()
{
return total / count;
}
};
double student::total = 0;
double student::count = 0;
void main()
{
int i, n, s;
cout << "请输入学生人数:"; cin >> n;
student stu;
for (i = 1; i <= n; i++)
{
cout << "输入第" << i << "个学生的分数:"; cin >> s;
stu.scoretotalcount(s);
}
cout << "总分:" << stu.sum() << endl;
cout << "平均分:" << stu.average() << endl;    //这里调用静态成员函数也可写成student::sum(); student::average();
system("pause");
}

需要特别注意的是静态成员函数的调用的写法:既可以写成“类名::函数”的形式,也可写成“对象.函数”的形式。

所以个人感觉这部分还是比较容易的,但是怕时间长不写程序给忘了,所以还是记录下来了。哎不说了,苦逼的补高数作业去了。。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值