template 模板类模式

class Base {
public:
void step1() {
//...
}

virtual void step2() = 0;

void step3() {
	//...
}

virtual void step4() = 0;

void step5() {
	//...
}
void run() {
	step1();
	step2();
	step3();
	step4();
	step5();
}

};
class BaseA : public Base {
void step2() {
}
void step4() {
}
};
int main() {
Base* base = new BaseA;
base->run();
return 0;
}
子类重写了父类的虚函数方法,因为父类已经提供了模板方法run,父类指针base指向了子类对象BaseA,调用的时候就会晚绑定因为虚函数表的存在,调用的run方法中的step2和step4的两个重写的方法都是子类自己的方法,就根据父类提供的模板方法进行的调用。

posted @ 2024-05-30 00:07  陈浩辉  阅读(12)  评论(0)    收藏  举报
ヾ(≧O≦)〃嗷~