65,186
社区成员




#include <iostream>
#include <string>
using namespace std;
//飞机颜色、枚举型
enum fjYanse{ysWhite,ysBlue,ysGray,ysRed};
//飞机状态
enum fjZht{ztWz,ztTz,ztFx};
//飞机
class Feiji
{
private:
fjYanse color;//飞机颜色
fjZht zht;//飞机状态
int renshu=0;//载客人数
protected:
public:
Feiji(fjYanse ys)
{
color=ys;
string ysstr;
switch(color)
{
case ysWhite:
ysstr="白色";
break;
case ysBlue:
ysstr="蓝色";
break;
case ysGray:
ysstr="灰色";
break;
case ysRed:
ysstr="灰色";
break;
default:
ysstr="颜色未知,可能是混合色";
}
cout<<"飞机 已制造..."<<"颜色:"<<ysstr<<endl;
}
~Feiji()
{
if(zht==ztFx)
{
cout<<"飞机在空中炸毁"<<endl;
}
else
{
cout<<"飞机 被炸毁"<<endl;
}
}
//起飞
virtual void Qifei()
{
if(renshu<=0){
cout<<"干嘛?这是要搞无人飞行啊,技术还没达到呢!"<<endl;
return;
}
if(zht=ztFx)
{
cout<<"飞机正在飞行,还要飞到哪里去?要飞的找不到么?"<<endl;
return;
}
zht=ztFx;
cout<<"飞机 起飞...,载人:"<<renshu<<endl;
}
//降落
virtual void Jiangluo()
{
zht=ztTz;
cout<<"飞机 降落"<<endl;
}
//进人,超载返回false
virtual bool Jinren()
{
if(zht==ztFx)
{
throw zht;
}
cout<<"飞机进1个人"<<endl;
this->renshu++;
return true;
}
//现有人数
int Renshu()
{
return renshu;
}
bool zzFeixing()
{
return (zht==ztFx);
}
};
//喷气飞机,继承自Feiji
class Pqfj:public Feiji
{
private:
int edzkrs=0;//额定载客
public:
Pqfj(fjYanse ys,int edzk):Feiji(ys)
{
edzkrs=edzk;
}
~Pqfj()
{
//
}
void Qifei()
{
Feiji::Qifei();
}
void Jiangluo()
{
Feiji::Jiangluo();
}
bool Jinren()
{
if(zzFeixing())
{
cout<<"飞机正在飞行,哪能进人啊?你是超人????"<<endl;
return false;
}
if(Renshu()>edzkrs)
{
cout<<"警告:飞机超载,额定人数为:"<<edzkrs<<endl;
return false;
}
return Feiji::Jinren();
}
bool Jinren(int n)
{
if(Renshu()+n>edzkrs)
{
cout<<"不要挤,进不了这么多人,超载会被罚款的"<<endl;
return false;
}
for(int i=1;i<=n;i++)
{
if(!this->Jinren())
{
return false;
}
}
}
};
int main()
{
Pqfj* pqfj=new Pqfj(ysBlue,20);//生产飞机,额定载客20
pqfj->Jinren();//进1个人
pqfj->Jinren(3);//进3个人
pqfj->Jinren(30);//进30个人
pqfj->Qifei();//起飞
pqfj->Jinren(2);//飞行状态进人
pqfj->Jiangluo();//降落
delete pqfj;//炸毁飞机
return 0;
}
int Renshu()
{
return renshu;
}
这个函数吗?
内联函数式什么意思?
我只是为了好理解才这么写,英语水平的确也不行,主要目的是为了验证从书上看到的东西,可能实际不会这么命名。