zoukankan      html  css  js  c++  java
  • Date、Person、Student 、Teacher完成多态和非多态的代码编写

    定义生日类Date、人类Person、学生类Student 、教师类Teacher,自行设计成员函数,完成多态和非多态的代码编写;

    利用组合派生即可;

      1 #include<iostream>
      2 #include<cstring>    
      3          
      4 using namespace std;
      5 
      6 class Date            // Date
      7 {
      8     private:
      9         int year,month,day;
     10     public:
     11         Date(int year_ = 1,int month_ = 1,int day_ = 1):year(year_),month(month_),day(day_)    {     }
     12         ~Date();
     13         void Dateprint();
     14 };
     15 
     16 Date::~Date()
     17 {
     18     cout<<"~ ~ ~destructor Date Year Month Day  "<<endl;
     19 }
     20 
     21 void Date::Dateprint()
     22 {
     23     cout<<"@@Date::Dateprint@@"<<endl;
     24 }
     25 
     26                         //
     27 class Person            // Person 
     28 {
     29     private:
     30         Date date;
     31         string name;
     32         int age;
     33     public:
     34         Person(int year_ ,int month_ ,int day_ ,string name_ = "NULL", int age_ = 0)
     35         :date(year_,month_,day_),name(name_),age(age_)     { }
     36         ~Person();
     37         virtual void Print();
     38         void Print_out();
     39 };
     40 
     41 Person::~Person()
     42 {
     43     cout<<"~ ~ ~destructor Person Name Age  "<<endl;
     44 }
     45 
     46 void Person::Print()
     47 {
     48     cout<<"@@virtual void Print@@"<<endl<<endl;;
     49 }
     50 
     51 void Person::Print_out()
     52 {
     53     cout<<"@@void Print_out@@"<<endl<<endl;;
     54 }
     55 
     56                                 //
     57 class Student:public Person        // Student
     58 {
     59     private:
     60         string id;
     61         double avgscore;
     62     public:
     63         Student(int year_,int month_,int day_,string name_,int age_,string id_ = "NULL",double avgscore_ = 0)
     64         :Person(year_,month_,day_,name_,age_),id(id_),avgscore(avgscore_){    }        
     65         ~Student();
     66         virtual void Print();
     67         void Print_out();
     68 };
     69 
     70 Student::~Student()
     71 {
     72     cout<<"~ ~ ~Student  Id Avgscore  "<<endl;
     73 }
     74 
     75 void Student::Print()
     76 {
     77     cout<<"@@Student::Print@@"<<endl<<endl;
     78 }
     79 
     80 void Student::Print_out()
     81 {
     82     cout<<"@@Student::Print_out@@"<<endl<<endl;
     83 }
     84 
     85                                     //
     86 class Teacher:public Person            // Teacher
     87 {
     88     private:
     89         int neb_student;
     90     public:
     91         Teacher(int year_,int month_,int day_,string name_,int age_,int neb_student_ = 0)
     92         :Person(year_,month_,day_,name_,age_),neb_student(neb_student_)    { }
     93         ~Teacher();
     94         virtual void Print();
     95         void Print_out();        
     96 };
     97 
     98 Teacher::~Teacher()
     99 {
    100     cout<<"~ ~ ~destructor Teacher neb_student "<<endl;
    101 }
    102 
    103 void Teacher::Print()
    104 {
    105     cout<<"@@Teacher::Print@@"<<endl<<endl;
    106 }
    107 
    108 void Teacher::Print_out()
    109 {
    110     cout<<"@@Teacher::Print_out@@"<<endl<<endl;
    111 }
    112 
    113 
    114 int main()
    115 {
    116     string name0,id0;
    117     int year0,month0,day0,age0,neb_student0;
    118     double avgscore0;
    119     
    120     cout<<"please Student>>year>>month>>day>>name>>age>>id>>avgscore"<<endl;
    121     
    122     cin>>year0>>month0>>day0>>name0>>age0>>id0>>avgscore0;
    123     
    124     Student hujun(year0,month0,day0,name0,age0,id0,avgscore0);
    125     
    126     cout<<"please Teacher>>year>>month>>day>>name>>age>>neb_student"<<endl;
    127     
    128     cin>>year0>>month0>>day0>>name0>>age0>>id0>>neb_student0;
    129     
    130     Teacher HJ(year0,month0,day0,name0,age0,neb_student0);
    131     
    132     Person *pt1;
    133     
    134     pt1 = &hujun ;
    135     pt1->Print() ;
    136     pt1->Print_out() ;
    137     pt1 = &HJ;
    138     pt1->Print() ;
    139     pt1->Print_out() ;
    140     
    141     hujun.Print() ;
    142     hujun.Print_out() ;
    143     HJ.Print() ;
    144     HJ.Print_out() ;
    145     
    146     return 0;
    147 }
  • 相关阅读:
    助力APP尽情“撒币”!阿里云正式上线移动直播问答解决方案
    Linux API的fork()测试
    完美搞定《DOCKER IN ACTION》第二章示例
    docker+python无头浏览器爬虫
    阿里云播放器SDK的正确打开方式 | Aliplayer Web播放器介绍及功能实现(三)
    11月9日云栖精选夜读:阿里90后工程师_如何用AI程序写出双11打call歌?
    知名网站的 404 页面长啥样?你的404长啥样?
    10月24日云栖精选夜读:2017杭州•云栖大会完美收官 虚拟化平台精彩回顾
    memcache漏洞你补上了吗
    5分钟用Jitpack发布开源库
  • 原文地址:https://www.cnblogs.com/2015-16/p/12180020.html
Copyright © 2011-2022 走看看