多层派生时的构造函数

 1 #include <iostream>
 2 #include <string.h>
 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 4 using namespace std;
 5 
 6 class Student
 7 {
 8     public:
 9         Student(int n,string nam)
10         {
11             num=n;
12             name=nam;
13         }
14         void display()
15         {
16             cout<<"num:"<<num<<endl;
17             cout<<"name:"<<name<<endl;
18         }
19         
20         protected:
21             int num;
22             string name;
23 };
24 
25 class Student1:public Student
26 {
27     public:
28         Student1(int n,string nam,int a):Student(n,nam)
29         {
30         age=a;
31         }
32         void show()
33         {
34             display();
35             cout<<"age:"<<age<<endl;
36         }
37         private:
38             int age;
39 };
40 
41 class Student2:public Student1
42 {
43     public:
44         Student2(int n,string nam,int a ,int s):Student1(n,nam,a)
45         {
46             score=s;
47         }
48         void show_all()
49         {
50             show();
51             cout<<"score:"<<score<<endl;
52         }
53         private:
54             int score;
55 };
56 
57 int main(int argc, char** argv) {
58     Student2 stud(10010,"li",17,89);
59     stud.show_all();
60     return 0;
61 }
原文地址:https://www.cnblogs.com/borter/p/9405469.html