A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小子考驾照 中级黑马   /  2014-8-27 23:35  /  683 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  • 今天重新看了一遍毕老师的模板方法模式,然后在网上看到这样一点代码,重新认识了这个模式的应用,没有毕老师那个好想,
  • /*
  • 一张试卷,哈哈
  • */
  • class TestpaperTemplate
  • {
  •         public  void templateMethod()//模板方法,定义了要完成操作的骨架
  •         {
  •                 question1();
  •                answer1();
  •                 question2();
  •                 answer2();
  •         }
  •         void question1()
  • {
  •         cout<<"问题一:二叉树每个节点儿子节点数目有多少:\n";
  •         cout<<"A.最多1个 B.最多两个 C.任意多个 D.至少一个";
  • }
  •         void question2()
  • {
  •         cout<<"问题二:完全二叉树叶子节点可能在哪一层:\n";
  •         cout<<"A.任意一层 B.最后一层 C.最后两层 D.最后三层";
  • }
  •         protected virtual void answer1();//这两个方法的具体实现延时到子类,因不同的类而不同
  •         {
  •                 virtual void answer2();
  •         }
  •         class StudentA :public TestpaperTemplate
  • {
  •         virtual void answer1()
  • {
  •         cout<<"答案:B"<<endl<<endl;
  • }
  •         virtual void answer2()
  • {
  •         cout<<"答案:A"<<endl<<endl;
  • }
  • }
  •         class StudentB  :public TestpaperTemplate
  • {
  •         //此处和StudentA中类似,只是每个学生选择的答案不同
  • }
  • 看了半天才弄明白这思路,分享一下,一起来学习{:3_57:}

1 个回复

倒序浏览
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马