下面是简单工厂的那个例子的C++实现,参考了网上的一个Word文档,vs2005测试,留作备份 #include <iostream> using namespace std; //运算类 class COperation { public: int m_nFirst; int m_nSecond; virtual double GetResult() { double result=0; return result; } }; //加法 class CAddOperation:public COperation { public: virtual double GetResult() { return m_nFirst+m_nSecond; } }; //减法 class CSubOperation:public COperation { public: virtual double GetResult() { return m_nFirst-m_nSecond; } }; //简单工厂类 class CCaculatorFactory { public: static COperation *Create(char cOperation); }; //客户端 int main() { int a,b; cin>>a>>b; COperation *op=CCaculatorFactory::Create('+'); op->m_nFirst=a; op->m_nSecond=b; cout<<op->GetResult()<<endl; return 0; } //类的函数实现 COperation * CCaculatorFactory::Create( char cOperation ) { COperation *oper; switch(cOperation) { case '+': oper=new CAddOperation(); break; case '-': oper=new CSubOperation(); break; default: cout<<"没有合适的操作!程序终止"<<endl; exit(1); break; } return oper; }