模板方法模式

来源:互联网 发布:djay pro for mac 编辑:程序博客网 时间:2024/05/16 09:07
/************************************************************************//*    模板方法模式                                *//************************************************************************//*将重复的行为在父类中抽象,具体实现在子类种完成,而行为的调用代码在父类中完成利用多态原理,实际的调用的是子类的行为*//*这里以A、B两人答同一份试卷为例*/#include<iostream>using namespace std;class TestPaper{public:/*A和B都具有答题的行为,但是具体的行为的表现却不一样*/virtual void Answer1() = 0;virtual void Answer2() = 0;void Question1(){cout<<"凤姐是不是女人?    A.是   B.不是"<<endl;Answer1();}void Question2(){cout<<"如果世界上只剩下凤姐和你,你会取她吗?     A.我宁愿自杀   B.为了人类哥从了"<<endl;Answer2();}};//A的答题试卷class TestPaperA : public TestPaper{public:void Answer1(){cout<<"A"<<endl;}void Answer2(){cout<<"A"<<endl;}};//B的答题试卷class TestPaperB : public TestPaper{public:void Answer1(){cout<<"B"<<endl;}void Answer2(){cout<<"B"<<endl;}};void main(){cout<<"A的试卷"<<endl;TestPaper * A = new TestPaperA();A->Question1();A->Question2();cout<<"................................................................................"<<endl;cout<<"B的试卷"<<endl;TestPaperB *B = new TestPaperB();B->Question1();B->Question2();}

原创粉丝点击