21xrx.com
2025-03-18 15:26:12 Tuesday
文章检索 我的文章 写文章
"C++多重继承的实例演示"
2023-07-13 01:51:13 深夜i     7     0
C++ 多重继承 实例演示

C++是一种广泛使用的面向对象编程语言,它具有多重继承的特性。多重继承是C++面向对象编程的一个重要特性,它可以让一个类从多个父类中继承属性和方法。

在C++中,多重继承可以通过在一个类的定义中声明多个基类来实现。下面我们来看一下一个实例演示。

假设我们有以下三个类:Person、Student和Teacher。Person类有两个属性:姓名和年龄,并且有两个成员函数:一个构造函数和一个显示信息的函数。Student类和Teacher类都继承自Person类,并且具有各自的属性和成员函数。

现在,我们希望创建一个新类GraduateStudent,它继承自Student类和Teacher类,同时具有自己的属性和方法。

下面是完整的代码实现:

#include <iostream>
#include <string>
using namespace std;
class Person {
private:
  string name;
  int age;
public:
  Person(string n, int a)
    name = n;
    age = a;
  
  void display()
    cout << "Name: " << name << endl;
    cout << "Age: " << age << endl;
  
};
class Student : public Person {
private:
  string major;
  double gpa;
public:
  Student(string n, int a, string m, double g) : Person(n, a)
    major = m;
    gpa = g;
  
  void display() {
    Person::display();
    cout << "Major: " << major << endl;
    cout << "GPA: " << gpa << endl;
  }
};
class Teacher : public Person {
private:
  string department;
  int years_of_experience;
public:
  Teacher(string n, int a, string d, int y) : Person(n, a)
    department = d;
    years_of_experience = y;
  
  void display() {
    Person::display();
    cout << "Department: " << department << endl;
    cout << "Years of experience: " << years_of_experience << endl;
  }
};
class GraduateStudent : public Student, public Teacher {
private:
  string research_topic;
public:
  GraduateStudent(string n, int a, string m, double g, string d, int y, string r) : Student(n, a, m, g), Teacher(n, a, d, y)
    research_topic = r;
  
  void display() {
    Person::display();
    cout << "Major: " << Student::major << endl;
    cout << "GPA: " << Student::gpa << endl;
    cout << "Department: " << Teacher::department << endl;
    cout << "Years of experience: " << Teacher::years_of_experience << endl;
    cout << "Research topic: " << research_topic << endl;
  }
};
int main() {
  GraduateStudent gs("Tom", 25, "Computer Science", 3.7, "Engineering", 5, "Artificial Intelligence");
  gs.display();
  return 0;
}

在上述代码中,我们创建了一个名为GraduateStudent的新类,它同时继承了Student类和Teacher类。在GraduateStudent类中,我们还添加了一个新的属性research_topic,并实现了一个新的display()函数来显示所有属性和成员函数。

在main()函数中,我们创建一个GraduateStudent对象,并调用它的display()函数来显示所有属性和成员函数。运行程序,我们可以看到以下输出:

Name: Tom
Age: 25
Major: Computer Science
GPA: 3.7
Department: Engineering
Years of experience: 5
Research topic: Artificial Intelligence

这个实例演示了C++多重继承的功能,让我们可以将多个类的属性和方法组合在一起,形成新的类。同时,这个实例还展示了如何在多重继承的情况下访问父类的属性和成员函数,以及如何在子类中添加新的属性和成员函数。

总之,C++多重继承是一个强大的特性,它可以帮助我们更好地组织和设计程序。我们可以使用它来创建复杂的、具有层次结构的类,提高程序的可维护性和可重用性。

  
  

评论区

请求出错了