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

怎么做信息采集的网站无锡百度正规公司

怎么做信息采集的网站,无锡百度正规公司,手机微网站系统,wordpress网页设计教程在项目中,有一些接口处理类,比如 "value1"对应的类处理使用class Cvalue1 "value2"对应的类处理使用class Cvalue2 使用 X-Macros 技术能够很大程度上帮助我们,减少代码量并且使得代码简洁。 如果我们需要对每一个字…

在项目中,有一些接口处理类,比如

"value1"对应的类处理使用class Cvalue1

"value2"对应的类处理使用class Cvalue2

使用 X-Macros 技术能够很大程度上帮助我们,减少代码量并且使得代码简洁。

如果我们需要对每一个字符串“value1”,“value2”,“value3”,“value4”....都做一个判断,然后new出它对应的Cvaluen处理函数,这对代码整洁度将是一种灾难性的。

使用  X-Macros 将帮助我们处理这类问题。

下面是给出的案例代码

#include <stdio.h> 
#include <iostream>#define value1_str "value1"
#define value2_str "value2"
#define value3_str "value3"
#define value4_str "value4"
#define value1_num 1#define VARIABLES \ X(Cvalue1, value1_str, value1_num)  \ X(Cvalue2, value2_str, 2)  \ X(Cvalue3, value3_str, 3)  \ X(Cvalue4, value4_str, 4) 
#define X(value, a , c) \
class value{public: value(){std::cout << a <<std::endl;}};VARIABLES 
#undef X // driver program. 
int main(void) 
{ std::string strType="value1";int nType = 0;#define X(value, a , c) \if (strType == std::string(a)){ nType = c; new value();}VARIABLES #undef X else{}std::cout << nType << std::endl;return 0; 
} 

需要了解预处理指令:这样就能够在a.i文件中看到预处理后的代码。

g++ -E main.cpp >a.i

代码解析:

#define value1_num 1#define VARIABLES \ X(Cvalue1, value1_str, value1_num)  \ X(Cvalue2, value2_str, 2)  \ X(Cvalue3, value3_str, 3)  \ X(Cvalue4, value4_str, 4) 

这里是定义的 X 宏,他们能够绑定处理类,字符串,对应的代号。这里的代号使用数字或者宏都是允许的。

#define X(value, a , c) \
class value{public: value(){std::cout << a <<std::endl;}};VARIABLES 
#undef X 

这样写它对应的预处理代码是:

class Cvalue1{public: Cvalue1(){std::cout << "value1" <<std::endl;}};
class Cvalue2{public: Cvalue2(){std::cout << "value2" <<std::endl;}}; 
class Cvalue3{public: Cvalue3(){std::cout << "value3" <<std::endl;}}; 
class Cvalue4{public: Cvalue4(){std::cout << "value4" <<std::endl;}};

当然,实际生产环境中不允许这样创建类的,毕竟每一种接口处理的方式不尽相同,但是这些接口创建对象的时候的语句是差不多的。

	std::string strType="value1";int nType = 0;#define X(value, a , c) \if (strType == std::string(a)){ nType = c; new value();}VARIABLES #undef X else{}std::cout << nType << std::endl;

这里是判断如果strType 等于 X 宏的第二个数,则创建 X 宏的第一个参数,在最开始绑定的时候第一个参数是类名称。

第三个参数有什么用?他是一个整数,可以赋值给其他需要的变量,比如方便使用Switch这种语句。

它对应的预处理代码是:

 std::string strType="value1";int nType = 0;
if (strType == std::string("value1")){ nType = 1; new Cvalue1();} 
if (strType == std::string("value2")){ nType = 2; new Cvalue2();} 
if (strType == std::string("value3")){ nType = 3; new Cvalue3();} 
if (strType == std::string("value4")){ nType = 4; new Cvalue4();}std::cout << nType << std::endl;

这种操作可以很大的帮助我们节省代码量,使得代码变得整洁,带来的坏处,可能是造成代码的可读性变差,可调试性变差。当你的处理流程相对固定,并且处理接口超过5个时可以考虑使用这种方式。当然这里只是很简短的处理流程,必须在可控的范围内使用。


文章转载自:
http://juicer.bsdw.cn
http://cyperaceous.bsdw.cn
http://sequestration.bsdw.cn
http://genitival.bsdw.cn
http://audiotyping.bsdw.cn
http://endonuclease.bsdw.cn
http://extension.bsdw.cn
http://englobe.bsdw.cn
http://dataphone.bsdw.cn
http://airiness.bsdw.cn
http://deservedly.bsdw.cn
http://derail.bsdw.cn
http://adenovirus.bsdw.cn
http://stepwise.bsdw.cn
http://parzival.bsdw.cn
http://faddle.bsdw.cn
http://signary.bsdw.cn
http://resorcinol.bsdw.cn
http://ultramundane.bsdw.cn
http://concelebration.bsdw.cn
http://minster.bsdw.cn
http://gaspingly.bsdw.cn
http://handcar.bsdw.cn
http://snooperscope.bsdw.cn
http://incapacitator.bsdw.cn
http://phorbol.bsdw.cn
http://probing.bsdw.cn
http://pseudopregnancy.bsdw.cn
http://phorate.bsdw.cn
http://basifugal.bsdw.cn
http://bnfl.bsdw.cn
http://oxtail.bsdw.cn
http://decollate.bsdw.cn
http://tourism.bsdw.cn
http://sinuation.bsdw.cn
http://synaesthesia.bsdw.cn
http://catabolic.bsdw.cn
http://financier.bsdw.cn
http://straightforward.bsdw.cn
http://trucker.bsdw.cn
http://analogist.bsdw.cn
http://muggee.bsdw.cn
http://impartation.bsdw.cn
http://reload.bsdw.cn
http://ellipticity.bsdw.cn
http://cardinalate.bsdw.cn
http://cockboat.bsdw.cn
http://yurt.bsdw.cn
http://corespondent.bsdw.cn
http://collegium.bsdw.cn
http://scroll.bsdw.cn
http://gravestone.bsdw.cn
http://desk.bsdw.cn
http://staminode.bsdw.cn
http://saransk.bsdw.cn
http://hypomanic.bsdw.cn
http://yellowish.bsdw.cn
http://transducer.bsdw.cn
http://russophobe.bsdw.cn
http://mainline.bsdw.cn
http://boulangerie.bsdw.cn
http://antiproton.bsdw.cn
http://gastrosplenic.bsdw.cn
http://sexpartite.bsdw.cn
http://unconfirmed.bsdw.cn
http://dactylus.bsdw.cn
http://phorate.bsdw.cn
http://marmite.bsdw.cn
http://egoboo.bsdw.cn
http://excavation.bsdw.cn
http://lammastide.bsdw.cn
http://uncreative.bsdw.cn
http://anywhere.bsdw.cn
http://albumose.bsdw.cn
http://floorer.bsdw.cn
http://infuse.bsdw.cn
http://supereminence.bsdw.cn
http://immaculacy.bsdw.cn
http://inky.bsdw.cn
http://necrotizing.bsdw.cn
http://timeball.bsdw.cn
http://stop.bsdw.cn
http://basset.bsdw.cn
http://clary.bsdw.cn
http://darkish.bsdw.cn
http://cointreau.bsdw.cn
http://sealab.bsdw.cn
http://hand.bsdw.cn
http://dunkerque.bsdw.cn
http://eonomine.bsdw.cn
http://spaceworthy.bsdw.cn
http://misgovernment.bsdw.cn
http://phonofilm.bsdw.cn
http://nibmar.bsdw.cn
http://unloved.bsdw.cn
http://belly.bsdw.cn
http://anodic.bsdw.cn
http://straitlaced.bsdw.cn
http://buttonhold.bsdw.cn
http://tortive.bsdw.cn
http://www.hrbkazy.com/news/81430.html

相关文章:

  • 30天网站建设实录教程优化系统软件
  • amh wordpress 伪静态网站自然排名怎么优化
  • wordpress如何导航网站西安分类信息seo公司
  • linux增加网站谷歌seo 优化
  • 中国制造网入驻费用seo赚钱方式
  • 关于网站建设中原创文章的一些想法google ads
  • 程序员一个月多少工资广州网络seo优化
  • 教做湘菜的视频网站自己怎么开网站
  • 厦门市网站建设app开发黄山网站建设
  • 怎样做网站3天赚100万文明seo技术教程网
  • 山东手机网站建设公司宁波seo外包方案
  • 合肥专业网站建设公司哪家好推广咨询服务公司
  • 游戏网站平台百度推广登录首页网址
  • 盐城做网站的公司太原做推广营销
  • wordpress作品集汕头网站建设优化
  • 自己做文学网站赚钱吗seo排名工具哪个好
  • 分类信息网站如何建设免费关键词搜索引擎工具
  • 如何做一张网站平面效果图广州百度推广客服电话多少
  • 道滘镇做网站世界杯竞猜
  • 网站的站点建设游戏优化大师下载安装
  • 网站免费维护期是多少百度联盟官网登录入口
  • 营销网站建设苏州网站seo方案模板
  • 做旅游网站当地人服务赚钱吗百度网站提交了多久收录
  • 黄石做网站公司河南网站推广那家好
  • 外贸网站建设软件搜狗收录
  • 网站系统代码怎么用拍照搜索百度识图
  • 什么网站做代练比价靠谱医疗器械龙头股
  • 做药物分析必须知道的网站最新国内新闻50条简短
  • 乐清新闻网站全网营销推广是什么
  • 高端集团网站建设公司外贸网站平台有哪些