1 多继承语法: 2 3 //助教类既继承于老师类,又继承于学生类 4 class Assistant:public Teacher,public Student 5 { 6 }; 7 8 当遇到的问题无法只用一个“是一个”关系来描述的时候,就是多继承出场的时候。例即是学生,又是人,还是助教。 9 10 #include <iostream> 11 #include <string> 12 13 using namespace std; 14 15 #include <string> 16 //人类 17 class Person 18 { 19 public: 20 Person(string theName);//构造函数,theName为类的输入参数 21 void introduce(); 22 protected: 23 string name; 24 }; 25 Person::Person(string theName)//构造函数实现 26 { 27 name = theName; 28 } 29 void Person::introduce()//introduce()函数实现 30 { 31 cout << "大家好,我是" << name << "。\n\n"; 32 } 33 34 //老师类继承于人类 35 class Teacher:public Person 36 { 37 public: 38 Teacher(string theName,string theClass); 39 40 void teach();//教书 41 void introduce(); 42 protected: 43 string classes; 44 }; 45 Teacher::Teacher(string theName,string theClass):Person(theName)//老师的名字继承于人类中的名字 46 { 47 classes = theClass; 48 } 49 void Teacher::teach() 50 { 51 cout<< name << " 教 "<< classes << "。\n\n"; 52 } 53 void Teacher::introduce() 54 { 55 cout<<"大家好,我是 "<< name <<" ,我教 "<< classes << "。\n\n"; 56 } 57 58 //学生类继承于人类 59 class Student:public Person 60 { 61 public: 62 Student(string theName,string theClass); 63 64 void attendClass();//要上课 65 void introduce(); 66 protected: 67 string classes; 68 }; 69 Student::Student(string theName,string theClass):Person(theName)//学生名字继承于人类中的名字 70 { 71 classes = theClass; 72 } 73 void Student::attendClass() 74 { 75 cout<< name <<"加入"<< classes << "学习。\n\n"; 76 } 77 void Student::introduce() 78 { 79 cout<< "大家好,我是" << name << ",我在" << classes << "学习。\n\n"; 80 } 81 82 //助教类既继承于老师类,又继承于学生类 83 class Assistant:public Teacher,public Student 84 { 85 public: 86 Assistant(string theName,string classTeaching,string classAttending); 87 88 void introduce(); 89 }; 90 Assistant::Assistant(string theName,string classTeaching,string classAttending):Teacher(theName, classTeaching),Student(theName,classAttending) 91 { 92 93 //多继承 助教既继承老师类,又继承学生类 94 95 } 96 void Assistant::introduce() 97 { 98 cout << "大家好,我是" << Student::name << ".我教" << Teacher::classes << ","; 99 cout << "同时我在" << Student::classes << "学习。\n\n"; 100 } 101 102 int main() 103 { 104 Teacher teacher("小甲鱼","C++入门班"); 105 Student student("迷途羔羊","C++入门班"); 106 Assistant assistant("丁丁","C++入门班","C++进阶班"); 107 108 teacher.introduce(); 109 teacher.teach(); 110 111 student.introduce(); 112 student.attendClass(); 113 114 assistant.introduce(); 115 assistant.teach(); 116 assistant.attendClass(); 117 118 return 0; 119 }标签:multiple,string,inheritance,继承,C++,Person,introduce,theName,include From: https://www.cnblogs.com/ybqjymy/p/17640559.html