Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7688387
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: C/C++

2011-03-30 14:20:51

  1. /****************************************************
  2. * 文件名:
  3. * 功能:单继承简单应用
  4. * 说明:类的继承是面向对象程序设计的一个重要特征
  5.         继承就是利用现有的类来定义新的类,新的类不仅能获得已有类的特性,而且还可以
  6.         修改获得特性以及增加新的特性。
  7.         初始化派生类的对象时,就要对基类数据成员、和子对象数据成员都进行初始化
  8. * 时间:2011-3-30                  --Lzy
  9. ****************************************************/
  10. //公在继承

  11. #include <iostream.h>
  12. #include <string.h>

  13. class Student
  14. {
  15. private:
  16.     char *name;
  17.     int scoreNO;

  18. public:
  19.      Student (char *str = "", int sn = 1)        //构造函数

  20.      {
  21.         name = new char[strlen(str)+1];            //重新分配存储空间

  22.         strcpy(name, str);                        //保存数据

  23.         scoreNO = sn;
  24.      }

  25.      ~Student(){delete []name;}                    //释放数组内存单元

  26.      char * getname(){return name;}
  27.      int getScoreNO(){return scoreNO;}
  28. };

  29. class GraduateStudent:public Student
  30. {
  31. private:
  32.     char *instructor;

  33. public:
  34.     GraduateStudent(char *str = "", int sn = 1, char *dstr = ""):Student (str, sn)
  35.     {
  36.         instructor = new char[strlen(dstr)+1];
  37.         strcpy(instructor, dstr);
  38.     }
  39.     ~GraduateStudent(){delete []instructor;}
  40.     char *getInstructor(){return instructor;}
  41. };

  42. void main()
  43. {
  44.     GraduateStudent Lzy("罗志勇", 19, "Lzy");
  45.     cout<<Lzy.getname()<<'\t'<<Lzy.getScoreNO()<<'\t'<<Lzy.getInstructor()<<endl;
  46. }

  47. //私有继承

  48. #include <iostream.h>
  49. #include <string.h>

  50. class Student
  51. {
  52. protected:
  53.     char *name;
  54.     int scoreNO;

  55. public:
  56.      Student (char *str = "", int sn = 1)        //构造函数

  57.      {
  58.         name = new char[strlen(str)+1];            //重新分配存储空间

  59.         strcpy(name, str);                        //保存数据

  60.         scoreNO = sn;
  61.      }

  62.      ~Student(){delete []name;}                    //释放数组内存单元

  63.      char * getname(){return name;}
  64.      int getScoreNO(){return scoreNO;}
  65. };

  66. class GraduateStudent:private Student
  67. {
  68. private:
  69.     char *instructor;

  70. public:
  71.     GraduateStudent(char *str = "", int sn = 1, char *dstr = ""):Student (str, sn)
  72.     {
  73.         instructor = new char[strlen(dstr)+1];
  74.         strcpy(instructor, dstr);
  75.     }
  76.     ~GraduateStudent(){delete []instructor;}
  77.     char *getInstructor(){return instructor;}
  78.      char * getname(){return name;}
  79.      int getScoreNO(){return scoreNO;}
  80. };

  81. void main()
  82. {
  83.     GraduateStudent Lzy("罗志勇", 19, "Lzy");
  84.     cout<<Lzy.getname()<<'\t'<<Lzy.getScoreNO()<<'\t'<<Lzy.getInstructor()<<endl;
  85. }
阅读(1565) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~