本文主要是介绍c++工厂模式之工厂方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
直接上代码
#include<iostream>
using namespace std; class Operation
{
private: double _numberA; double _numberB;
public: Operation();//声明默认构造函数 double SetNum(double num_a, double num_b);//设置私有成员数据的value //获取私有成员(声明const成员函数,只能放在函数后面) int getNumA()const { return _numberA; } int getNumB()const { return _numberB; } //获取运算结果 virtual double GetResult() { double result = 0; return result; }
}; //定义默认构造函数
Operation::Operation()
{ this->_numberA = 10; this->_numberB = 5;
} //定义设值函数
double Operation::SetNum(double num_a, double num_b)
{ this->_numberA = num_a; this->_numberB = num_b; return _numberA, _numberB;
} //加法类
class OperationAdd: public Operation
{
public: //重载GetResult double GetResult() { double result = 0; result = getNumA() + getNumB(); return result; }
}; //减法类
class OperationSub: public Operation
{
public: double GetResult() { double result = 0; result = getNumA() - getNumB(); return result; }
}; //工厂类
class Factory
{
public: virtual Operation *CreateOperate() = 0; //指针函数是指返回值是指针的函数,即本质是一个函数
}; //加法工厂
class AddFactory: public Factory
{
public: Operation *CreateOperate() { return new OperationAdd(); }
}; //减法工厂
class SubFactory: public Factory
{
public: Operation *CreateOperate() { return new OperationSub(); }
}; int main(void)
{ //工厂模式 Factory *fc = new AddFactory(); Operation *oper = fc->CreateOperate(); oper->SetNum(60, 60); cout<<oper->GetResult(); delete oper; delete fc; system("pause"); return 0;
}
这篇关于c++工厂模式之工厂方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!