税收类为基类,派生出几个类,中国税收类,美国税收类,英国税收类
typedef enum{
TYPE_CH_TAX = 0,
TYPE_US_TAX,
TYPE_BR_TAX,
TYPE_ERROR
}eType;
/*税收*/
class Tax
{
public:
Tax(){}
virtual void AcceptTax() = 0;
virtual ~Tax(){}
};
/*中国税收*/
class CHTax : public Tax
{
public:
CHTax(){}
void AcceptTax(){
std::cout<<"CHTax";
}
~CHTax(){}
};
/*美国税收*/
class USTax : public Tax
{
public:
USTax(){}
void AcceptTax(){
std::cout<<"USTax";
}
virtual ~USTax(){}
};
/*英国税收*/
class BRTax : public Tax
{
public:
BRTax(){}
void AcceptTax(){
std::cout<<"BRTax";
}
~BRTax(){}
};
简单工厂模式
/*工厂只是根据你需要的创建你的类型, 工厂里并没有类型的对象*/
class Factory
{
public:
Factory(){
}
~Factory(){
}
Tax* newContex(eType Type){
if (TYPE_CH_TAX == Type) {
return new CHTax(