简单工厂模式C++代码示例---《大话设计模式》笔记

----------------------------------------------------------------------

//Compute.h

//基类
#include<iostream>
using namespace std;


#pragma  once


class Compute
{
protected:
double num1;
double num2;
public:
void SetNum1(double n1){num1=n1;}
void SetNum2(double n1){num2=n1;}
virtual double GetResult(){return 0;}


};




//子类
class AddCompute:public Compute
{
public:
virtual double GetResult()
{
cout<<num1+num2<<endl;
return num1+num2;
}
};


class SubCompute: public Compute
{
public:
double GetResult()
{
cout<<num1-num2<<endl;
return num1-num2;
}
};

----------------------------------------------------------------------

//Factory.h

#include "Compute.h"

#include <string>
using namespace std;
class Factory
{
public:
static Compute* createCompute(string ope){
Compute* compute=NULL;
if(ope=="+")compute=new AddCompute();
if(ope=="-")compute=new SubCompute();
return compute;

}

};


----------------------------------------------------------------------

//theMain.cpp

#include "Compute.h"
#include "Factory.h"
#include <iostream>
using namespace std;


int main()
{
Compute* com=NULL;
Factory fac;
com=fac.createCompute("-");
com->SetNum1(10);
com->SetNum2(3);
com->GetResult();
system("pause");
return 0;
}

----------------------------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值