17_2.cpp
来自「本文档是(作者:钱能)《C++程序设计教程》课后习题答案。 选题编辑:张朝阳 」· C++ 代码 · 共 50 行
CPP
50 行
#include <iostream.h>
#include <typeinfo.h>
class Father{
public:
Father(){ cout <<"father is created.\n"; }
void DoWork(){ DriveACar(); }
void DoMannulWork(){ RepairTV(); }
void DriveACar() { cout <<&typeid(*this).name()[6] <<" Drive a car.\n"; }
protected:
void RepairTV() { cout <<&typeid(*this).name()[6] <<" Repair a TV set.\n"; }
};
class Mother{
public:
Mother(){ cout <<"mother is created.\n"; }
void SingASong() { cout <<&typeid(*this).name()[6] <<" Sing a song.\n"; }
void DoWork(){ SingASong(); } //正式工
void DoMannulWork() { cout <<&typeid(*this).name()[6] <<" Do mannul work.\n"; } //小工
};
class Boy : public Father, public Mother{
public:
Boy(){ cout <<"boy is created.\n"; }
void RepairTV(){ cout <<"boy "; Father::RepairTV(); }
void SingASong(){ cout <<"boy "; Mother::SingASong(); }
void PlayPingPong() { cout <<&typeid(*this).name()[6] <<" Play pingpong.\n"; };
};
void main()
{
Father father;
Mother mother;
Boy boy;
father.DoWork();
mother.DoWork();
mother.DoMannulWork();
boy.PlayPingPong();
boy.DriveACar();
boy.SingASong();
father.DoMannulWork();
boy.RepairTV();
}
//修改class Father
//void RepairTV(); 改为public
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?