设计一个单基继承的类层次程序,用Person类派生出Student类,增加属性学号index和年级level。Person类中至少有姓名name、年龄age等数据成员,以及构造函数、输出函数等,其余成员函数根据需要添加。在主函数中进行测试。
时间: 2024-05-11 08:16:55 浏览: 71
好的,让我来回答你的问题。以下是设计的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Person {
protected:
string name;
int age;
public:
Person(string n, int a) {
name = n;
age = a;
}
void printInfo() const {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
}
};
class Student : public Person {
private:
string index;
int level;
public:
Student(string n, int a, string i, int l) : Person(n, a) {
index = i;
level = l;
}
void printInfo() const {
Person::printInfo();
cout << "Index: " << index << endl;
cout << "Level: " << level << endl;
}
};
int main() {
Student s("Aria", 20, "123456789", 3);
s.printInfo();
return 0;
}
```
这个程序定义了一个Person类,其中包含了姓名和年龄等数据成员,以及构造函数和输出函数。Student类继承自Person类,并增加了学号和年级两个属性。在Student类中,构造函数使用了基类的构造函数来初始化name和age,同时也初始化了index和level。输出函数中,首先调用基类的输出函数来输出姓名和年龄,然后再输出学号和年级。
为了保护隐私,这里我并没有使用实际的姓名和学号,你可以根据需要修改。运行程序后,输出结果应该如下:
```
Name: Aria
Age: 20
Index: 123456789
Level: 3
```
感谢你的提问,如果你还有其他问题,可以继续问我哦!
阅读全文