引自免费微信小程序:皆我百晓生
好的,让我们开始。首先,我们需要定义一个名为Student
的类。这个类有两个数据成员:一个是学生的姓名(char类型的字符串),另一个是学生的性别(布尔类型的值)。此外,还有一组公共成员函数,它们都是为了方便使用而设计的。以下是这个类的定义:
#include <iostream>
#include <string>
class Student {
private:
std::string name;
bool isMale;
int sno;
int year;
int month;
int day;
// 公共成员函数
public:
Student(const std::string &name, bool isMale, int sno, int year, int month, int day) : name(name), isMale(isMale), sno(sno), year(year), month(month), day(day) {}
std::string getName() const { return name; }
bool getIsMale() const { return isMale; }
int getSno() const { return sno; }
int getYear() const { return year; }
int getMonth() const { return month; }
int getDay() const { return day; }
void setName(const std::string &newName) {
name = newName;
}
void setIsMale(bool newIsMale) {
isMale = newIsMale;
}
void setSno(int newSno) {
sno = newSno;
}
void setYear(int newYear) {
year = newYear;
}
void setMonth(int newMonth) {
month = newMonth;
}
void setDay(int newDay) {
day = newDay;
}
void input(double *s) {
for (int i = 0; i < *s; ++i)
std::cout << "* ";
}
void input(double *s[]) {
for (int i = 0; i < *s; ++i)
std::cout << "* ";
}
};
接下来,我们来看看定义一个名为Student
的类的继承情况。在这个例子中,我们将创建一个派生类,叫做AdvancedStudent
,它继承自Student
。这是一个简单的示例,用于展示如何从父类继承字段并覆盖这些字段:
#include <iostream>
#include <string>
class Student {
private:
std::string name;
bool isMale;
int sno;
int year;
int month;
int day;
public:
Student(const std::string &name, bool isMale, int sno, int year, int month, int day) : name(name), isMale(isMale), sno(sno), year(year), month(month), day(day) {}
std::string getName() const { return name; }
bool getIsMale() const { return isMale; }
int getSno() const { return sno; }
int getYear() const { return year; }
int getMonth() const { return month; }
int getDay() const { return day; }
void setName(const std::string &newName) {
name = newName;
}
void setIsMale(bool newIsMale) {
isMale = newIsMale;
}
void setSno(int newSno) {
sno = newSno;
}
void setYear(int newYear) {
year = newYear;
}
void setMonth(int newMonth) {
month = newMonth;
}
void setDay(int newDay) {
day = newDay;
}
void input(double *s) {
for (int i = 0; i < *s; ++i)
std::cout << "* ";
}
void input(double *s[]) {
for (int i = 0; i < *s; ++i)
std::cout << "* ";
}
};
class AdvancedStudent : public Student {
private:
double* score;
public:
AdvancedStudent(const std::string &name, bool isMale, int sno, int year, int month, int day, double *score)
: Student(name, isMale, sno, year, month, day) {
this->score = score;
}
double* getScore() const { return score; }
// 使用已知的学生分数作为输入,并返回新评分
double* inputScore(double s) {
*this->score = s;
return *this->score;
}
};
这只是一个非常基础的例子,实际的程序可能包含更多的功能和错误检查。例如,在上面的inputScore
函数中,我们需要处理输入为空的情况,并在输出时只显示空格。同时,如果你需要修改某个门类的成绩,你应该重新调用这个方法,并提供相应的参数。在上述示例中,我们没有添加任何特殊的操作,但如果你想添加一些额外的功能,比如输入分数到系统之外的数据库等,你需要根据你的具体需求来实现这部分代码。