方法:定义操作中的骨架,而将一些步骤延迟到子类中实现;
#include <iostream>
using namespace std;
class Base
{
public:
virtual void method1() = 0;
virtual void method2() = 0;
};
class A : public Base
{
public:
void method1()
{
std::cout << "A_method1" << std::endl;
}
void method2()
{
std::cout << "A_method2" << std::endl;
}
};
class B : public Base
{
public:
void method1()
{
std::cout << "B_method1" << std::endl;
}
void method2()
{
std::cout << "B_method2" << std::endl;
}
};
int main()
{
Base *a = new A;
a->method1();
a->method2();
Base *b = new B;
b->method1();
b->method2();
return 0;
}