个人网站建设在哪里,wordpress栏目标题,外贸论坛找客户,北京网站建设价格核心思想#xff1a;用一个工厂类根据不同的输入条件new出不同的派生类指针#xff0c;然后由多态调用不同派生类中virtual函数#xff0c;得到不同的结果 所有的判断处理在工厂类中完成#xff0c;通过CreateFactory函数#xff0c;根据不同的类型#xff0c;new出派生类…核心思想用一个工厂类根据不同的输入条件new出不同的派生类指针然后由多态调用不同派生类中virtual函数得到不同的结果 所有的判断处理在工厂类中完成通过CreateFactory函数根据不同的类型new出派生类指针返回基类指针。 代码如下 1 class CFactory2 {3 public:4 CFactory(void);5 ~CFactory(void);6 7 public:8 static IOperator* CreateFactory(char cStr);9 };
10
11 IOperator* CFactory::CreateFactory(char cStr)
12 {
13 IOperator *pStr NULL;
14 switch(cStr)
15 {
16 case :
17 {
18 pStr new CAddOperator();
19 }
20 break;
21 case -:
22 {
23 pStr new CSubtract();
24 }
25 break;
26 default:
27 break;
28 }
29
30 return pStr;
31 }
32
33 class IOperator
34 {
35 public:
36 IOperator(void);
37 virtual ~IOperator(void);
38
39 public:
40 virtual int Result() 0;
41
42 public:
43 int m_nA;
44 int m_nB;
45 };
46
47 class CAddOperator : public IOperator
48 {
49 public:
50 CAddOperator(void);
51 ~CAddOperator(void);
52
53 public:
54 virtual int Result();
55 };
56
57 class CSubtract : public IOperator
58 {
59 public:
60 CSubtract(void);
61 ~CSubtract(void);
62
63 public:
64 virtual int Result();
65 };
66
外部调用67 IOperator *pTemp CFactory::CreateFactory();
68 if (NULL ! pTemp)
69 {
70 pTemp-m_nA 4;
71 pTemp-m_nB 3;
72
73 int i pTemp-Result();
74 } 转载于:https://www.cnblogs.com/fenglangxiaotian/p/5670484.html