단순한 공장 모델

5795 단어 공장 모델

  
  
  
  
  1. #include<iostream> 
  2. using namespace std;  
  3. class Operation  
  4. {  
  5. public :  
  6.       
  7.     Operation(double A,double B):_numberA(A),_numberB(B){}  
  8.     double Get_numA(){return _numberA;}  
  9.     double Get_numB(){return _numberB;}  
  10.     virtual double Get_Result(){double result=0; return result;}  
  11. private:  
  12.     double _numberA,_numberB;  
  13.  
  14. };  
  15. class Operation_Add:public Operation  
  16. {  
  17. public:  
  18.     Operation_Add(double A,double B):Operation(A,B){}  
  19.     double Get_Result()  
  20.     {  
  21.       
  22.         return Get_numA()+Get_numB();  
  23.     }  
  24. };  
  25. class Operation_Sub:public Operation  
  26. {  
  27. public:  
  28.     Operation_Sub(double _numberA,double _numberB):Operation(_numberA,_numberB){}  
  29.     double Get_Result()  
  30.     {  
  31.         return Get_numA()-Get_numB();  
  32.     }  
  33.  
  34. };  
  35. class Operation_Mul:public Operation  
  36. {  
  37.     public:  
  38.     Operation_Mul(double _numberA,double _numberB):Operation(_numberA,_numberB){}  
  39.     double Get_Result()  
  40.     {  
  41.         return Get_numA()*Get_numB();  
  42.     }  
  43.  
  44. };  
  45. class OperationFactory  
  46. {  
  47. public:  
  48.     OperationFactory(double _numA,double _numB,char operate)  
  49.     {  
  50.         Operation *opr;  
  51.         switch (operate)  
  52.         {  
  53.         case'+':  
  54.           opr=new Operation_Add(_numA,_numB);    break;  
  55.         case'-':  
  56.             opr=new Operation_Sub(_numA,_numB);  break;  
  57.         case'*':  
  58.             opr=new Operation_Mul(_numA,_numB);break;  
  59.         default:  
  60.             break;  
  61.         }  
  62.         cout<<opr->Get_Result();  
  63.  
  64.     }  
  65. } ;  
  66. int main()  
  67. {  
  68.     double a,b; char ch;  
  69.     cin>>a>>b>>ch;  
  70.       
  71.     OperationFactory opar(a,b,ch);  
  72.  
  73.     return 0;  

바늘만 new,, 서브클래스 구조 함수에 매개 변수를 부류 구조 함수에 전달하는 방법

좋은 웹페이지 즐겨찾기