程序填空题:多层派生时的构造函数
根据所定义的基类,完成派生类的定义。
```c++
#include
#include
using namespace std;
class Student
{public:
Student(int n, string nam )
{num=n;
name=nam;
}
void display()
{cout<<"num:"< cout<<"name:"< }
protected:
int num;
string name;
};
class Student1: public Student
{public:
@@[Student1(int n,string nam,int a):Student(n,nam)](2)
{age=a; }
void show( )
{display();
cout<<"age: "< }
private:
int age;
};
class Student2:public Student1
{public:
@@[Student2(int n,string nam,int a,int s):Student1(n,nam,a)](3)
{score=s;}
void show_all()
{show();
cout<<"score:"< }
private:
int score;
};
int main( )
{Student2 stud(10010,"Li",17,89);
stud.show_all( );
return 0;
}
```
答案:
第1空:Student1(int n,string nam,int a):Student(n,nam)
第2空:Student2(int n,string nam,int a,int s):Student1(n,nam,a)
```c++
#include
#include
using namespace std;
class Student
{public:
Student(int n, string nam )
{num=n;
name=nam;
}
void display()
{cout<<"num:"<
protected:
int num;
string name;
};
class Student1: public Student
{public:
@@[Student1(int n,string nam,int a):Student(n,nam)](2)
{age=a; }
void show( )
{display();
cout<<"age: "<
private:
int age;
};
class Student2:public Student1
{public:
@@[Student2(int n,string nam,int a,int s):Student1(n,nam,a)](3)
{score=s;}
void show_all()
{show();
cout<<"score:"<
private:
int score;
};
int main( )
{Student2 stud(10010,"Li",17,89);
stud.show_all( );
return 0;
}
```
答案:
第1空:Student1(int n,string nam,int a):Student(n,nam)
第2空:Student2(int n,string nam,int a,int s):Student1(n,nam,a)