[实验任务一]:双向适配器
实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。
实验要求:
1. 画出对应的类图;

2. 提交源代码;
#include <iostream>
#include <string>
using namespace std;
class Cat
{
public:
virtual void catlook(){}
virtual void catchM(){}
};
class CatImpl:public Cat
{
public:
void catlook()
{
cout<<"猫的样子"<<endl;
}
void catchM()
{
cout<<"猫抓老鼠"<<endl;
}
};
class Dog
{
public:
virtual void doglook(){}
virtual void wang(){}
};
class DogImpl:public Dog
{
public:
void doglook()
{
cout<<"狗的样子"<<endl;
}
void wang()
{
cout<<"狗汪汪叫"<<endl;
}
};
class Adapter : public Cat,Dog
{
private:
Dog *DogImpl;
Cat *CatImpl;
public:
Adapter(Dog *DogImp,Cat *CatImp)
{
DogImpl=DogImp;
CatImpl=CatImp;
}
virtual void doglook()
{
cout<<"狗模仿";
CatImpl->catlook();
}
virtual void wang()
{
cout<<"狗模仿";
CatImpl->catchM();
}
virtual void catlook()
{
cout<<"猫模仿";
DogImpl->doglook();
}
virtual void catchM()
{
cout<<"猫模仿";
DogImpl->wang();
}
};
int main()
{
DogImpl *DogImp=new DogImpl();
CatImpl *CatImp=new CatImpl();
Adapter *adapter = new Adapter(DogImp,CatImp);
adapter->catlook();
adapter->catchM();
cout<<"**************"<<endl;
adapter->doglook();
adapter->wang();
return 0;
}
3.注意编程规范。
posted @
2023-11-06 08:31
秃头的小白
阅读(
8)
评论()
编辑
收藏
举报