【厚积薄发系列】C++项目总结10—C++模板在实际项目常用场景之一
需求背景:
比如说参数化建模中,需要创建不同的图元(如墙梁板柱),这些图元创建的步骤相同构造图元的参数不同(先检验参数合法性、构造三维体、存储到对应数据库中)。
解决方案:
1、先抽象;相同点(墙梁板柱都是三维体,构造的步骤相同),不同点(所需参数不一样、创建的细节不一样)。
经分析可以先提基类和类模板的思想。基类参数采用模板,不同子类的不同参数等子类来初始化。
详细实现(简易代码示例):
#pragma once
#include "StdAfx.h"
#include <string>
#include <iostream>
template<typename DataT>
class CBaseObject
{
public:
CBaseObject():m_objectData(nullptr){}
~CBaseObject(){}
void setParam(DataT* objectData) { m_objectData = objectData;}
DataT* getParam() { return m_objectData; }
virtual void doSomething() = 0;
protected:
DataT* m_objectData;
};
//
class AParam
{
public:
//to do A图元需要的实际参数
};
class BParam
{
public:
//to do B图元需要的实际参数
};
//
class AObject : public CBaseObject<AParam>
{
public:
AObject(){}
~AObject(){}
void doSomething() { }
};
class BObject : public CBaseObject<BParam>
{
public:
BObject(){}
~BObject(){}
void doSomething() { }
};
【厚积薄发系列】C++项目总结10—C++模板在实际项目常用场景之一相关推荐
- python小项目推荐项目-推荐 10 个有趣的 Python 项目
想成为一个优秀的开发者,没有捷径可走,势必要花费大量时间在键盘后. 而不断地进行各种小项目开发,可以为之后的大开发项目积攒经验,做好准备. 但不少人都在为开发什么项目而苦恼,因此,我为大家准备了10个 ...
- 【厚积薄发系列】C++项目总结19—组件化架构思想
在一个大型的项目中,随着业务不断拓展,开发人员和代码量的不断增加,传统的单体架构会经常遇到以下问题: 1.业务模块划分不够清晰,模块之间高度耦合,修改和新增需求的时候可能会导致牵一发而动全身的雪崩. ...
- 项目管理—项目经理常用的10张图表推荐(华为项目管理10大模板)
项目管理其实是有一些常用的工具和模板的,这也是项目经理们常用的,我们一些新入行的小白可能不怎么知道,有一些老人也不怎么会告诉,今天小编就给大家普及一下: 第一位的,当然就是甘特图了(甘特图的画法,项目 ...
- 转载vSphere部署系列之10——虚拟机模板和规范
vSphere部署系列之10--虚拟机模板和规范 在前面的博文章节中,已搭建了群集,并启用了HA和DRS,但还没有划分资源池,这种情况已经可以应付实际生产环境.资源池的创建和配置比较简单.难点在对配额 ...
- 【AI简报20210604期】意法半导体收购Cartesiam、10个顶级开源AI项目分享
嵌入式 AI 1. 嵌入式AI创新峰会万字干货,16位大咖演讲精华 原文链接: http://news.idcquan.com/scqb/186972.shtml GTIC 2021嵌入式AI创新峰会 ...
- 在Visual Studio 2010中创建多项目(解决方案)模板【三】
前文回顾: 在Visual Studio 2010中创建多项目(解决方案)模板[一]:多项目解决方案模板的创建 在Visual Studio 2010中创建多项目(解决方案)模板[二]:Templat ...
- python项目-推荐 10 个有趣的 Python 练手项目
想成为一个优秀的Python程序员,没有捷径可走,势必要花费大量时间在键盘后. 而不断地进行各种小项目开发,可以为之后的大开发项目积攒经验,做好准备. 但不少人都在为开发什么项目而苦恼. 因此,我为大 ...
- 推荐 10 个有趣的 Python 项目
想成为一个优秀的开发者,没有捷径可走,势必要花费大量时间在键盘后. 而不断地进行各种小项目开发,可以为之后的大开发项目积攒经验,做好准备. 但不少人都在为开发什么项目而苦恼,因此,我为大家准备了10个 ...
- vs2019中如何创建qt项目_在VS2015中创建Qt项目【VS+Qt项目开发系列】(二)
在VS2015中创建Qt项目[VS+Qt项目开发系列](二) 发布时间:2018-04-20 22:44, 浏览次数:1269 , 标签: VS Qt 在上一篇[VS+Qt项目开发](一)在VS201 ...
最新文章
- 深度学习之Pytorch基础教程!
- linux下mysql日志配置_Linux下MySQL 5.5.21 服务器日志配置
- 【CVPR2020】目标检测方向论文更新
- 杨氏干涉的模拟的MATLAB仿真
- 三元表达式 列表递推 生成器表达式
- 【在路上4】在派件时效分析中剥离有效因素
- 155个建议笔记--建议33:不要覆写静态方法
- 从word得到表格数据插入数据库(6位行业代码)
- linux刷新jdk,Linux安装更新JDK
- 如果没有英语,计算机,如果有一天没有电脑(英语作文)
- 【OpenCV学习笔记】【函数学习】十九(感兴趣区域)
- OpenCASCADE Expression Interpreter by Flex Bison
- .Net6项目部署IIS步骤
- NDK学习笔记:线程JNIEnv,JavaVM,JNI_OnLoad(GetEnv返回NULL?FindClass返回NULL?)
- 循环switch 变量x 如果case a 车辆型号查询系统官网,车辆型号怎么去查询?
- cad图形不见了怎么办_CAD软件常见问题解答,CAD中的工具栏不见了怎么办?如何清理图形...
- 实在不行来瓶敌敌畏吧!Scrapy框架爬取某农药肥料网站+异步Mysql数据库存储
- [DeFRCN] Decouple Faster R-CNN for Few-Shot Object Detection(ICCV 2021)
- 在线pdf转换成word文档的方法
- linux系统文件夹