目录
类的辅助函数(Helper Functions)
类 可以具有不仅仅是设置 或 获取数据值的成员函数。这些 辅助函数 可以执行经常被请求或在类本身中更容易执行的任务。
例如:
假设我们有一个班级来跟踪学生在课程中获得的成绩。 我们可以创建一个计算平均值的成员函数。
/*header file for main.cpp*/
#include<iostream>
using namespace std;
class Student
{
int grade[5];
int id;
public:
Student();
void setId(int idin);
void setGrade(int index, int gradeIn);
int getId();
int getGrade(int index);
float getAvg();
void printInfo();
};
Student::Student()
{
for(int i=0;i<5;i++)
{
grade[i] = 0;
}
id = 0;
}
void Student::setId(int idin)
{
id = idin;
}
void Student::setGrade(int index, int gradeIn)
{
grade[index] = gradeIn;
}
int Student::getId()
{
return id;
}
int Student::getGrade(int index)
{
return grade[index];
}
float Student::getAvg()
{
int sum = 0;
for(int i=0; i<5;i++)
sum = sum + grade[i];
return sum/5.0;
}
void Student::printInfo()
{
cout<<id<<"\n";
for(int i=0; i<5;i++)
cout<<grade[i]<<" ";
}
上面是头文件 main.hpp 。
#include "main.hpp"
int main()
{
Student s1;
s1.setId(3232);
s1.setGrade(0,85);
s1.setGrade(1, 80);
s1.setGrade(2,98);
s1.setGrade(3,65);
s1.setGrade(4,90);
s1.printInfo();
cout<<"avg = "<<s1.getAvg();
return 0;
}
运行结果:
相信大家学到这里,应该在学习创建类的时候就可以想到类的函数(也即是类的方法)可以变成自己辅助函数了,非常有趣。
这里有个需要注意的技术点:
1。int grade[5]; 注意这里的是定义了索引为5 的整型数组,也就是:grade[0],grade[1],grade[2],grade[3],grade[];
2。这个是构造函数,这里的 for 语句,主要是为了给 grade[i] 从 0到4 的5个索引下的值初始化为0,注意它的 for 书写格式。相信学过其他程序语言的程序员都能够看懂,我就不赘(zhuì)述了(不查不知道,一查吓一跳!这个赘述的赘(zhuì),很多线上或者线下的培训老师都读成 ào 或者 ǒu)。
Student::Student()
{
for(int i=0;i<5;i++)
{
grade[i] = 0;
}
id = 0;
}
我们再来看一个例子:
对于这个程序,我创建了一个名为 ' Gameboard ' 的类。
Gameboard 有一个私有成员 ' gameSpace [4] [4] ',它是一个 4x4 数组,可以接受16个位置中每个位置的字符。
该类有四个公共成员,它们是函数和构造函数:
- 构造函数将 gameSpace 的每个值设置为 char值 ' - ' ;
- 每个位置用一个 char 设置;
- 每个位置都可以单独阅读;
- printInfo 将 gameSpace 打印为 4x4 矩阵;
- 辅助函数 ' fourInRow ' 检查每一行,寻找四个 '