设计一个Person(人)基类,包含name(姓名)和age(年龄)成员变量,并实现 getName()和getAge()成员函数。从Person类派生出Student(学生)类,添加studentID (学号)成员变量,并实现getStudentID()成员函数。从Student类派生出GraduateStudent (研究生)类,添加researchTopic(研究课题)成员变量,并实现getResearchTopic()成员函 数。
时间: 2024-01-10 16:03:17 浏览: 39
好的,这是一个面向对象编程的问题。我可以帮您设计这个类的结构。
首先,我们需要创建Person类,其中包含name(姓名)和age(年龄)两个成员变量,并实现getName()和getAge()成员函数。
```C++
class Person {
protected: // 注意使用protected,以便派生类能够访问成员变量
std::string name; // 姓名
int age; // 年龄
public:
Person(std::string name, int age) : name(name), age(age) {}
std::string getName() {
return name;
}
int getAge() {
return age;
}
};
```
接下来,我们从Person类派生出Student类,添加studentID(学号)成员变量,并实现getStudentID()成员函数。
```C++
class Student : public Person {
private:
std::string studentID; // 学号
public:
Student(std::string name, int age, std::string studentID) : Person(name, age), studentID(studentID) {}
std::string getStudentID() {
return studentID;
}
};
```
现在,我们从Student类派生出GraduateStudent类,添加researchTopic(研究课题)成员变量,并实现getResearchTopic()成员函数。
```C++
class GraduateStudent : public Student {
private:
std::string researchTopic; // 研究课题
public:
GraduateStudent(std::string name, int age, std::string studentID, std::string researchTopic) : Student(name, age, studentID), researchTopic(researchTopic) {}
std::string getResearchTopic() {
return researchTopic;
}
};
```
现在,我们就可以使用Person、Student和GraduateStudent类来创建对象,并通过对应的成员函数来访问它们的成员变量了。例如:
```C++
int main() {
Person p("张三", 20);
Student s("李四", 21, "20210001");
GraduateStudent g("王五", 22, "20200001", "人工智能");
std::cout << p.getName() << " " << p.getAge() << std::endl;
std::cout << s.getName() << " " << s.getAge() << " " << s.getStudentID() << std::endl;
std::cout << g.getName() << " " << g.getAge() << " " << g.getStudentID() << " " << g.getResearchTopic() << std::endl;
return 0;
}
```
输出结果为:
```
张三 20
李四 21 20210001
王五 22 20200001 人工智能
```
以上就是解决这个问题的代码示例。希望对您有所帮助。