C++设计模式详解之模板模式解析
2023-09-14 09:05:11 时间
1、模板方法模式定义
模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现
2、模板方法模式实例
以考试为例,考数学和考语文的过程几乎都是一样的,就是准备考试,背书,写试卷,不同点在于 写试卷,一个是写语文试卷,一个是写数学试卷,那么就可以把写试卷的过程 用不同子类实现
头文件:
//模板方法模式实例
//常规准备考试
class PreSubject
{
public:
void writeNote();//记笔记
void reciteBook();//背诵
virtual void writeTest() = 0; //做试卷
};
class PreMathSubject:public PreSubject
{
public:
void writeTest();
};
class PreChineseSubject:public PreSubject
{
public:
void writeTest();
};
实现文件:
// ModelMethod.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "ModelMethod.h"
using namespace std;
void PreSubject::reciteBook()
{
cout <<"背诵" <<endl;
}
void PreSubject::writeNote()
{
cout << "写笔记" << endl;
writeTest();
}
void PreMathSubject::writeTest()
{
cout << "写数学考卷" << endl;
}
void PreChineseSubject::writeTest()
{
cout << "写语文考卷" << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
PreSubject * cur_Chinese = new PreChineseSubject();
cur_Chinese->writeNote();
PreSubject * cur_Math = new PreMathSubject();
cur_Math->writeNote();
delete cur_Math;
delete cur_Chinese;
system("pause");
return 0;
}
3、运行结果:
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
相关文章
- C++学习之路—— STL标准模板库概述
- C++泛型编程,模板(一)函数模板
- EasyC++39,函数模板
- EasyC++41,模板显式具体化
- 数字逆序输出 -- C++ 实现
- C++ 初识函数模板
- 深入理解C++11_c++ string char
- C++ SetTimer
- Cloneable_c++list容器
- C++ 中的预增(或预减)
- C++ 不知图系列之基于链接表的无向图最短路径搜索
- c++的链表-C++实现简单链表
- C/C++ 获取 PE 文件导出表
- C++ 中文周刊 第94期
- C/C++开发基础——函数对象与std::function模板
- 从超过100万个项目中搜索C++代码示例
- C++模板(初阶)
- 【C++】模板初阶&&STL简介
- 【C++】模板进阶
- c++ 类模板函数模板的问题,模板函数不能是虚函数,虚函数不能是内联详解编程语言
- C++ pair类模板,STL pair类模板
- C++函数模板(模板函数)详解
- C++类模板(模板类)与友元详解
- C++ hash(STL hash)及其函数模板用法详解
- C++ STL标准模板库
- C++自定义迭代器(STL自定义迭代器)的实现详解
- C/C++中指针和引用之相关问题深入研究
- VC++实现选择排序算法简单示例