给出下面的人员基类框架: class Person { protected: string name; int age; public: Person(); Person (string p_name, int p_age); void display () {cout<<name<<“:”<<age<<endl;} }; 建立一个派生类student,增加以下成员数据: int ID;//学号 float cpp_score;//
时间: 2024-03-01 07:53:06 浏览: 126
Person类派生出Student类.cpp
下面是实现了上述要求的 `Student` 类的代码:
```cpp
#include <iostream>
using namespace std;
class Person {
protected:
string name;
int age;
public:
Person();
Person(string p_name, int p_age);
void display() {
cout << name << ":" << age << endl;
}
};
class Student : public Person {
protected:
int ID; // 学号
float cpp_score; // C++ 成绩
public:
Student(string p_name, int p_age, int p_id, float p_cpp_score);
void display() {
cout << name << ":" << age << ":" << ID << ":" << cpp_score << endl;
}
};
Person::Person() {
name = "";
age = 0;
}
Person::Person(string p_name, int p_age) {
name = p_name;
age = p_age;
}
Student::Student(string p_name, int p_age, int p_id, float p_cpp_score) : Person(p_name, p_age) {
ID = p_id;
cpp_score = p_cpp_score;
}
int main() {
Student stu("张三", 20, 1001, 90.5);
stu.display();
return 0;
}
```
需要注意的是,派生类 `Student` 中的 `display` 函数覆盖了基类 `Person` 中的 `display` 函数,因为它们的函数名和参数列表都相同。在 `Student` 类的 `display` 函数中,我们不仅输出了基类中的 `name` 和 `age`,还输出了派生类中的 `ID` 和 `cpp_score`。
阅读全文