C++多态的应用--拿水果
题目描述:现在要实现拿水果。水果有很多的种类,比如苹果,香蕉,橘子等等。一般情况下拿水果的方式都是相同的,只有某些水果不一样,比如说现在拿香蕉的方式
就不一样,而拿苹果和橘子的方式相同。未来有更多的水果时,拿新水果的方式一般也与苹果、橘子相同。做一下设计,实现拿水果的接口。
#include<iostream>
using namespace std;
class Fruit
{
public:
	virtual void take() = 0;
};
void Fruit::take()
{
	cout << "统一的take方式" << endl;
}
class Apple :public Fruit
{
public:
	virtual void take();
};
void Apple::take()
{
	Fruit::take();   
}
class Oriange :public Fruit
{
public:
	virtual void take();
};
void Oriange::take()
{
	Fruit::take();
}
class Banana :public Fruit
{
public:
	virtual void take();
};
void Banana::take()
{
	cout << "Banana特有的take方式" << endl;
}
class FruitOperator
{
public:
	void take(Fruit* fruit);
};
void FruitOperator::take(Fruit* fruit)
{
	fruit->take();
}
int main()
{
	FruitOperator fruitOperator;
	Fruit* pA = new Apple();
	fruitOperator.take(pA);
	
	Fruit* pO = new Oriange();
	fruitOperator.take(pO);
	Fruit* pB = new Banana();
	fruitOperator.take(pB);
	delete pA;
	pA = nullptr;
	delete pO;
	pO = nullptr;
	delete pB;
	pB = nullptr;
	return 0;
}
posted on 2022-02-06 17:00 xcxfury001 阅读(93) 评论(0) 收藏 举报
 
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号