📄 动物运动会.cpp
字号:
#include <string>
#include <iostream>
using namespace std;
class Animal
{
protected:
string name;
int shoutNum;
virtual string getShoutSound()=0;
public:
Animal(string name)
{
this->name = name;
shoutNum = 3;
}
Animal()
{
name = "无名";
shoutNum = 3;
}
void setName(string name)
{
this->name = name;
}
void setShoutNum(int shoutNum)
{
this->shoutNum = shoutNum;
}
void Shout()
{
string shout;
for(int i=0; i<shoutNum; i++)
{
shout += getShoutSound();
}
cout << "我叫" << name << shout << endl;
}
};
class Cat: public Animal
{
public:
Cat(string name): Animal(name)
{
}
Cat(): Animal()
{
}
protected:
string getShoutSound()
{
return " 喵";
}
};
class Monkey: public Animal
{
public:
Monkey(string name): Animal(name)
{
}
Monkey(): Animal()
{
}
protected:
string getShoutSound()
{
return " 吱";
}
};
class IChangeThing
{
public:
virtual void ChangeThing(string thing)=0;
virtual ~IChangeThing(){}
};
class MachineCat: public Cat, public IChangeThing
{
public:
MachineCat(): Cat()
{
}
MachineCat(string name): Cat(name)
{}
void ChangeThing( string thing )
{
Shout();
cout << " 我会使用口袋变东西, 变出" << thing << endl;
}
};
class StoneMonkey: public Monkey, public IChangeThing
{
public:
StoneMonkey(): Monkey()
{}
StoneMonkey(string name): Monkey(name)
{}
void ChangeThing( string thing )
{
Shout();
cout << " 我会使用猴毛变东西, 变出" << thing << endl;
}
};
int main()
{
IChangeThing *array[2];
array[0] = new MachineCat("叮当");
array[1] = new StoneMonkey("孙悟空");
array[0]->ChangeThing("任意门");
array[1]->ChangeThing("牛魔王");
delete array[0];
delete array[1];
// MachineCat *mcat = new MachineCat("叮当");
// StoneMonkey *smonkey = new StoneMonkey("孙悟空");
// mcat->ChangeThing("任意门");
// smonkey->ChangeThing("牛魔王");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -