#include <iostream>
#include <string>
using namespace std;
class TestPaper
{
public:
virtual ~TestPaper(){}
void TestQuestion1()
{
cout<<"TestQuestion1 : A,... B,... C,... D,..."<<endl;
Answer1();
}
virtual void Answer1() =0;
void TestQuestion2()
{
cout<<"TestQuestion2 : A,... B,... C,... D,..."<<endl;
Answer2();
}
virtual void Answer2() =0;
void TestQuestion3()
{
cout<<"TestQuestion3 : A,... B,... C,... D,..."<<endl;
Answer3();
}
virtual void Answer3() =0;
};
class TestPaperA : public TestPaper
{
public:
void Answer1()
{
cout<<"A"<<endl;
}
void Answer2()
{
cout<<"A"<<endl;
}
void Answer3()
{
cout<<"A"<<endl;
}
};
class TestPaperB : public TestPaper
{
public:
void Answer1()
{
cout<<"B"<<endl;
}
void Answer2()
{
cout<<"B"<<endl;
}
void Answer3()
{
cout<<"B"<<endl;
}
};
int main()
{
TestPaper *pA = new TestPaperA;
TestPaper *pB = new TestPaperB;
pA->TestQuestion1();
pA->TestQuestion2();
pA->TestQuestion3();
pB->TestQuestion1();
pB->TestQuestion2();
pB->TestQuestion3();
delete pA;
delete pB;
return 0;
}
templete_method 模板方法模式
于 2013-12-23 09:00:03 首次发布