帮忙调一下这个程序,谢谢

JYMZHIDUO 2011-05-15 11:48:02
#include <iostream>
using namespace std;
class Moshou
{
protected:
char name[20]; //魔兽名字
int level; //魔兽级别
public:
virtual ~ Moshou();
virtual Moshou();
};
Moshou::Moshou()
{
}
Moshou::~Moshou()
{
}
class ProduceMoshouA:public Moshou
{
public:ProduceMoshouA();
~ProduceMoshouA();
virtual void Function();
};
ProduceMoshouA::ProduceMoshouA()//初级魔兽
{
cout<<"创建初级奥特曼"<<endl;
}
ProduceMoshouA::~ProduceMoshouA()
{
cout<<"放弃初级奥特曼"<<endl;
}
void ProduceMoshouA::Function()
{
cout<<"创建初级奥特曼的工具"<<endl;
}
ProduceMoshouB::ProduceMoshouB()//中级魔兽
{
cout<<"创建中级奥特曼"<<endl;
}
ProduceMoshouB::~ProduceMoshouB()
{
cout<<"放弃中级奥特曼"<<endl;
}
void ProduceMoshouB::Function()
{
cout<<"创建中级奥特曼的工具"<<endl;
}
ProduceMoshouC::ProduceMoshouC()//高级魔兽
{
cout<<"创建高级奥特曼"<<endl;
}
ProduceMoshouC::~ProduceMoshouC()
{
cout<<"放弃高级奥特曼"<<endl;
}
void ProduceMoshouC::Function()
{
cout<<"创建高级奥特曼的工具"<<endl;
}
class SimpleFactory
{
public:SimpleFactory(){}
~SimpleFactory(){}
Moshou *AdoptMoshou(int MoshouType);
Moshou *AdoptMoshouA();
Moshou *AdoptMoshouB();
};
Moshou *SimpleFactory::AdoptMoshou(int MoshouType=0)
{
Moshou *p=0;
switch (MoshouType)
{
case 0:p=new ProduceMoshouA();break;
case 1:p=new ProduceMoshouB();break;
case 2:p=new ProduceMoshouC();break;
default:cout<<"游戏失败"<<endl;break;
return p;
}
}
Moshou *SimpleFactory::AdoptMoshouA()
{
return new ProduceMoshouA();
}
Moshou *SimpleFactory::AdoptMoshouB()
{
return new ProduceMoshouB();
}
Moshou *SimpleFactory::AdoptMoshouC()
{
return new ProduceMoshouC();
}
int main()
{
SimpleFactory sf;
Moshou* p=sf.AdoptMoshouA();
P->Function();
delete p;
p=sf.AdoptMoshouB();
P->Function();
delete p;
p=sf.AdoptMoshouC();
P->Function();
delete p;
return 0;
}

...全文
40 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧