多继承
C++允许一个类可以有多个父类(不建议使用,会增加程序设计复杂度)
struct Student {
int m_score;
void study() {
cout << "Student::study() - score = " << m_score << endl;
}
};
struct Worker {
int m_salary;
void work() {
cout << "Worker::work() - salary = " << m_salary << endl;
}
};
struct Undergraduate : Student, Worker {
// 多继承
int m_grade;
void play() {
cout << "Undergraduate::play() - grade = " << m_grade << endl;
}
};
int main() {
Undergraduate ug;
ug.m_score = 100;
ug.m_salary = 2000;
ug.m_grade = 4;
ug.study();
ug.work();
ug.play();
getchar();
return 0;
}
内存的顺序是按照父类继承的顺序来,先继承的student所以m_score在前面。
-
多继承体系下的构造函数调用
struct Student { int m_score; Student(int score) :m_score(score) {