大话设计模式C++实现-第10章-模板方法模式

2015-01-24 05:45:08 · 作者: · 浏览: 5

一、UML图

\

<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHN0cm9uZz62/qGiuMXE7jwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz7Eo7Dlt723qMSjyr2jujwvc3Ryb25nPrao0uXSu7j2stnX99bQtcTL47eotcS5x7zco6y2+L2r0rvQqbK91ujR07PZtb3X08Dg1tCho8SjsOW3vbeoyrm1w9fTwOC/ydLUsru4xLHk0ru49svjt6i1xL3hubm8tL/J1ti2qNLluMPL47eotcTEs9CpzNi2qLK91uihozwvcD4KPHA+PHN0cm9uZz48YnI+Cjwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz7I/aGiy7XD9zwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz69x8mro7o8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+o6gxo6lBYnN0cmFjdENsYXNzo7o8L3N0cm9uZz7Kx7Ppz/PA4KOsxuTKtdKyvs3Kx9K7uPaz6c/zxKOw5aOstqjS5bKiyrXP1sHL0ru49sSjsOW3vbeooaPV4rj2xKOw5be9t6jSu7DjysfSu7j2vt/M5be9t6ijrMv8uPiz9sHL0ru49ralvLbC37yttcS/8rzco6y2+MLfvK21xNfps8myvdbo1NrP4NOmtcSz6c/zstnX99bQo6zNxrPZtb3X08DgyrXP1qGjtqW8tsLfvK3SstPQv8nE3LX308PSu9Cpvt/M5be9t6ihozwvcD4KPHA+PHN0cm9uZz6jqDKjqUNvbmNyZXRlQ2xhc3Ojujwvc3Ryb25nPsq1z9a4uMDgy/m2qNLltcTSu7j2u/K24Lj2s+nP87e9t6iho8O/0ru49kFic3RyYWN0Q2xhc3O2vL/J0tTT0MjO0uK24Lj2Q29uY3JldGVDbGFzc9Pr1q621NOmo6y2+MO/0ru49kNvbmNyZXRlQ2xhc3O2vL/J0tS4+LP21eLQqbPpz/O3vbeoo6jSsr7Nyse2pby2wt+8rbXE1+mzybK91uijqbXEsrvNrMq1z9ajrLTTtvjKubXDtqW8tsLfvK21xMq1z9a497K7z+DNrKGjPC9wPgo8cD48c3Ryb25nPtfcveGjujwvc3Ryb25nPrWxsrux5LXEus2/ybHktcTQ0M6q1Nq3vbeotcTX08DgyrXP1tbQu+y6z9Ta0rvG8LXEyrG68qOssrux5LXE0NDOqr7Nu+HU2tfTwODW0NbYuLSz9s/WoaPO0sPHzai5/cSjsOW3vbeoxKPKvaOssNHV4tCp0NDOqrDh0sa1vbWl0ru1xLXYt72jrNXi0fmw79b619PA4LDazdHW2Li0tcSyu7Hk0NDOqrXEvsCy+KGjPC9wPgo8cD48c3Ryb25nPjxicj4KPC9zdHJvbmc+PC9wPgo8cD48c3Ryb25nPsvEoaJDJiM0MzsmIzQzO8q1z9Y8L3N0cm9uZz48L3A+CjxwPqOoMaOpVGVzdFBhcGVyLmijujwvcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">#ifndef TESTPAPER_H #define TESTPAPER_H #include #include //AbstractClass,实现了一个模板,定义了算法的骨架,组成骨架的具体步骤放在子类中实现 class TestPaper { public: void TestQuestion1() { std::cout<<"杨过得到,后来给了郭靖,练成倚天剑、屠龙刀的玄铁可能是【】a.球磨铸铁 b.马口铁 c.高速合金钢 d.碳素纤维"<

(2)main.cpp:

#include "TestPaper.h"
#include 
  
   
#include 
   
     //Client,客户端 void main() { std::cout<<"学生甲抄的试卷:"<
    
     TestQuestion1(); studentA->TestQuestion2(); studentA->TestQuestion3(); std::cout<
     
      TestQuestion1(); studentB->TestQuestion2(); studentB->TestQuestion3(); std::cout<
      
       

(3)运行结果: