/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: object.cpp
* 作者:赵晓晨
* 完成日期: 2013年05月30日
* 版本号: v1.0
* 输入描述:无
* 问题描述:无
* 程序输出:无
*/
# include <iostream>
# include <string>
using namespace std;
class Student//声明基类
{
public://公用部分
Student(int n,string nam)//基类构造函数
{
num=n;
name=nam;
}
void display()//成员函数,输出基类数据成员
{
cout<<"num: "<<num<<endl;
cout<<"name: "<<name<<endl;
}
protected://保护部分
int num;
string name;
};
class Student1:public Student//声明公用派生类Student1
{
public:
Student1(int n,string nam,int a):Student(n,nam)//派生类构造函数
{
age=a;//在此处只对派生类新增的数据成员初始化
}
void show()
{
display();
cout<<"age: "<<age<<endl;
}
private:
int age;
};
class Student2:public Student1//声明间接公用派生类Student2
{
public:
//下面是间接派生类构造函数
Student2(int n,string nam,int a,int s):Student1(n,nam,a)
{
score=s;
}
void show_all()//输出全部数据成员
{
show();
cout<<"score: "<<score<<endl;
}
private:
int score;
};
int main()
{
Student2 stud(10000,"zhao",18,89);
stud.show_all();//输出学生的全部数据
return 0;
}
结果:
体会:
public:
Student1(int n,string nam,int a):Student(n,nam)//派生类构造函数
{
age=a;//在此处只对派生类新增的数据成员初始化
}
修改后,成功了