当前位置: 首页 > news >正文

学网站开发要学什么jq效果较多的网站

学网站开发要学什么,jq效果较多的网站,无锡网络营销平台,广告推广方案1. 适用场景 c开发过程中使用工厂模式创建各种类对象的时候可能需要写一堆的’if-else’函数来根据传入的参数类型创建不同的类对象; 尤其是多态的情况下返回基类指针的情况. 例如: class B - class A // B继承A class C - class A // C继承AA *Create(type) {if (ty…1. 适用场景 c开发过程中使用工厂模式创建各种类对象的时候可能需要写一堆的’if-else’函数来根据传入的参数类型创建不同的类对象; 尤其是多态的情况下返回基类指针的情况. 例如: class B - class A // B继承A class C - class A // C继承AA *Create(type) {if (type B) return new (std::nothrow) B;if (type C) return new (std::nothrow) C;return nullptr; }以上场景在开发中很常见, 但是如果继承关系复杂, 这样的代码需要不停修改代码, 不是很合理. 比较好的方式是实现类似: B *p static_castB *(Create(B)); C *p static_castB *(Create(C));这样的效果. 其实就是JAVA中的反射机制的体现, 实际c本身是不支持的, 但是可以通过曲线救国的方式来实现. 2. 实现思路 核心: 通过回调函数来实现创建. 步骤: 1 创建一个单例工厂类, 类中维护一个类名和创建对应类的回调函数的映射关系(map) 2 需要创建的时候根据传入的类名参数查找对应的回调函数来创建类 3. 具体实现代码 main.cpp #include class_factory.hclass CReflex { public:int RunTest(){std::cout Class Created. Perfect Running. std::endl;return 0;} };SIM_OBJECT_CREATE_METHOD_REGISTER(CReflex);int main(int argc, char **argv) {CReflex *pReflex static_castCReflex *(ClassFactory::GetInst().Create(CReflex));return pReflex-RunTest(); }class_factory.h #ifndef CLASS_FACTORY_H #define CLASS_FACTORY_H#include string #include iostream #include unordered_maptypedef void *(*CLASS_CREATE_FN)();class ClassFactory { public:static ClassFactory GetInst(); public:void *Create(const std::string className);void RegistClass(const std::string className, CLASS_CREATE_FN fn);private:ClassFactory() default;~ClassFactory() default;ClassFactory(const ClassFactory ) delete;ClassFactory operator(const ClassFactory ) delete;private:std::unordered_mapstd::string, CLASS_CREATE_FN m_mpObjName2Method; };class ClassRegisterAction { public:ClassRegisterAction(const std::string className, CLASS_CREATE_FN fn); };#define SIM_OBJECT_CREATE_METHOD_REGISTER(className) \className *ClassCreate##className() \{ \return new (std::nothrow) className; \} \ClassRegisterAction g_ClassRegisterAction##className(#className, (CLASS_CREATE_FN)ClassCreate##className);#endif // CLASS_FACTORY_Hclass_factory.cpp #include class_factory.h/// Class ClassFactory ClassFactory ClassFactory::GetInst() {static ClassFactory factoryInst;return factoryInst; }void *ClassFactory::Create(const std::string className) {auto it m_mpObjName2Method.find(className);if (it m_mpObjName2Method.end()) {return nullptr;} else {return it-second();} }void ClassFactory::RegistClass(const std::string className, CLASS_CREATE_FN fn) {m_mpObjName2Method[className] fn; }/// Class ClassRegisterAction ClassRegisterAction::ClassRegisterAction(const std::string className, CLASS_CREATE_FN fn) {ClassFactory::GetInst().RegistClass(className, fn); }
http://www.zqtcl.cn/news/363192/

相关文章:

  • 个人网站设计理念自己做简历网站
  • 做网页设计的网站网站流量多少做网盟
  • 上海协会网站建设网站制作培训费用
  • 学会网站建设总结淮北市建市
  • 泉州开发网站的公司有哪些域名不用了需要注销吗
  • 重庆网站推广平台东莞整站优化火速公司
  • 商务网站建设综合实训网站推广效果怎么样
  • 成都品牌网站建设电话项目外包平台接活
  • 教育培训类网站模板上海有几个区最好
  • 公司网站维护怎么维护东莞网站建设it s
  • pc网站怎么做男科医院治疗一次2000元
  • 电子网站建设心得企业查询app排行榜
  • 杭州做网站的科技公司永川做网站的公司
  • 动物自己做的网站网站优化外包公司
  • 企业网站建设的三种方式并举例手机wap网站是什么
  • 做深圳门户网站起什么名字好建设网站对公司起什么作用是什么
  • 长春企业网站设计建设公司资质查询官网
  • 医疗网站前置审批查询免费网站建设可信赖
  • 摄影师个人网站模板宝坻集团网站建设
  • 比较多人用什么网站做推广wordpress数据库表管理系统
  • 网页开发和游戏开发东莞优化怎么做seo
  • 北京网站搭建开发高级网页设计教程
  • 北京南站是中高风险地区吗网站建设上机实验心得
  • 大学生做兼职的网站有哪些免费行情软件网站有哪些
  • 静安手机网站建设常见的网络营销方法及其效果
  • 怎么改版网站湖南长沙地图
  • 中卫网站推广公司如何自创app软件
  • 无棣网站建设电子商务网站设计原理书籍
  • 做t-shirt素材网站企业网站建设结论
  • 唐山公司做网站查询建筑资质的网站