17_2.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. #include <iostream.h>
  2. #include <typeinfo.h>
  3. class Father{
  4. public:
  5.   Father(){ cout <<"father is created.n"; }
  6. void DoWork(){ DriveACar(); }
  7. void DoMannulWork(){ RepairTV(); }
  8.   void DriveACar() {  cout <<&typeid(*this).name()[6] <<" Drive a car.n";  }
  9. protected:
  10.   void RepairTV() {  cout <<&typeid(*this).name()[6] <<" Repair a TV set.n";  }
  11. };
  12. class Mother{
  13. public:
  14.   Mother(){ cout <<"mother is created.n"; }
  15.   void SingASong() {  cout <<&typeid(*this).name()[6] <<" Sing a song.n";  } 
  16.   void DoWork(){ SingASong();  }                                                    //正式工
  17.   void DoMannulWork() { cout <<&typeid(*this).name()[6] <<" Do mannul work.n"; }   //小工
  18. };
  19. class Boy : public Father, public Mother{
  20. public:
  21.   Boy(){ cout <<"boy is created.n"; }
  22.   void RepairTV(){ cout <<"boy "; Father::RepairTV(); }
  23. void SingASong(){ cout <<"boy "; Mother::SingASong(); }
  24.   void PlayPingPong() { cout <<&typeid(*this).name()[6] <<" Play pingpong.n";  };
  25. };
  26. void main()
  27. {
  28.    Father father;
  29.    Mother mother;
  30.    Boy boy;
  31.    father.DoWork();
  32.    mother.DoWork();
  33.    mother.DoMannulWork();
  34.    boy.PlayPingPong();
  35.    boy.DriveACar();
  36.    boy.SingASong();
  37.    father.DoMannulWork();
  38.    boy.RepairTV();
  39. }
  40. //修改class Father
  41. //void RepairTV(); 改为public