C++第四次实验-----继承和派生

一、问题及代码

[cpp]  view plain  copy
  1. /*   
  2. * 文件名称:学生类   
  3. * 作    者:夏廷辉   
  4. * 完成日期:2016 年 4 月 29 日   
  5. * 版 本 号:vc6.0   
  6. * 对任务及求解方法的描述部分: 对继承和派生的运用
  7. * 输入描述:输入学生姓名、学号、住址、年龄 
  8. * 问题描述:清楚继承和派生的关系和调用方法  
  9. * 程序输出:如下  
  10. * 问题分析:略  
  11. * 算法设计:略   
  12. */      
  13. #include<iostream>  
  14. #include<string>  
  15. using namespace std;  
  16. class Stu   //声明基类   
  17.  
  18. {    
  19. public:    
  20.     Stu(int n, string nam );  //基类构造函数    
  21.     void display( );          //成员函数,输出基类数据成员    
  22. protected:        //(*)访问权限为保护型的数据成员    
  23.     int num;      //学生学号    
  24.     string name;  //学生姓名    
  25. };   
  26. Stu::Stu(int n,string nam):num(n),name(nam){}  
  27. void Stu::display()  
  28. {  
  29.     cout<<"学号:"<<num<<endl;  
  30.     cout<<"姓名:"<<name<<endl;  
  31. }  
  32. class StuDetail: public Stu              //声明派生类StuDetail    
  33. {    
  34. public:    
  35.     //学生nam,学号n,a岁,家住ad,他的班长是nam1,学号n1    
  36.     StuDetail(int n, string nam,int a, string ad,int n1, string nam1); //派生类构造函数    
  37.     void show( ); //成员函数,输出学生的信息    
  38.     void show_monitor( );    //成员函数,输出班长信息    
  39. private:    
  40.     Stu monitor;   //学生所在班的班长,班长是学生,是Stu类的成员    
  41.     int age;       //学生年龄    
  42.     string addr;   //学生的住址    
  43. };    
  44. StuDetail::StuDetail(int n, string nam,int a, string ad,int n1, string nam1):Stu(n,nam),monitor(n1,nam1)  
  45. {  
  46.     addr=ad;  
  47.     age=a;  
  48. }  
  49. void StuDetail::show()  
  50. {  
  51.     cout<<"学生信息:"<<endl;  
  52.     display();  
  53.     cout<<"年龄:"<<age<<endl;  
  54.     cout<<"住址:"<<addr<<endl;  
  55. }  
  56. void StuDetail::show_monitor()  
  57. {  
  58.     cout<<"班长信息:"<<endl;  
  59.     monitor.display();  
  60. }  
  61. int main( )    
  62. {    
  63.     //学生张三,10010号,19岁,家住江西南昌,他的班长是李四,学号10001    
  64.     StuDetail s(10010,"张三",19,"江西南昌",10001,"李四");    
  65.     s.show( );                       //输出学生信息    
  66.     s.show_monitor( );                //输出班长信息    
  67.     return 0;    
  68. }  

二、运行结果


三、心得体会

写的时候逻辑不是很清晰,经过看书和请教室友后才写出来,所以我会多了解有关继承和派生的。

四、知识点总结

1、公有继承下,类公有成员由基类的公有成员和新增的派生类公有成员所组成;

2、派生类私有成员为新增的派生类私有成员;

3、派生类保护成员由基类的保护成员和新增的派生类保护成员所组成。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值