c++代码 定义一个类CPerson,包括数据成员:姓名、编号、性别和用于输出的成员函数。在此基础上派生出学生类CStudent(增加成绩)。并实现对学生信息的输入输出。
时间: 2024-10-10 08:11:03 浏览: 56
设计一个人类person,包括人员编号和姓名等数据成员以及相关的成员函数
在 C++ 中,我们可以按照以下步骤定义 `CPerson` 类,然后派生出 `CStudent` 类,并实现基本的学生信息输入和输出:
```cpp
#include <iostream>
#include <string>
// 定义基础类 CPerson
class CPerson {
private:
std::string name;
int id;
char gender; // 'M' for male, 'F' for female
public:
// 构造函数
CPerson(const std::string& name, int id, char gender) : name(name), id(id), gender(gender) {}
// 输出成员函数
void displayInfo() const {
std::cout << "Name: " << name << ", ID: " << id << ", Gender: " << (gender == 'M' ? "Male" : "Female") << std::endl;
}
};
// 派生类 CStudent 继承自 CPerson 并添加成绩数据成员
class CStudent : public CPerson {
private:
double score;
public:
// 构造函数,包含父类构造函数参数及学生的成绩
CStudent(const std::string& name, int id, char gender, double score) : CPerson(name, id, gender), score(score) {}
// 输出成员函数,包含基本个人信息和成绩
void displayInfo() const override {
CPerson::displayInfo();
std::cout << "Score: " << score << std::endl;
}
// 输入学生信息的成员函数
void inputInfo(const std::string& name, int id, char gender, double score) {
this->name = name;
this->id = id;
this->gender = gender;
this->score = score;
}
};
int main() {
// 创建 CStudent 对象并设置信息
CStudent student("张三", 12345, 'M', 85.0);
student.displayInfo();
// 输入信息并显示
std::cout << "Enter student information:" << std::endl;
std::cin >> student.name >> student.id >> student.gender >> student.score;
student.displayInfo();
return 0;
}
```
在这个例子中,`CStudent` 类继承了 `CPerson` 的所有属性和行为,并新增了一个 `score` 成员。`displayInfo()` 函数被重写了,以便在输出时同时包含成绩信息。`inputInfo()` 函数则用于接收用户输入并更新学生的信息。
阅读全文