使用#include消除重复代码

#include消除重复代码.pdf

消除重复代码代码很多种,比如:

1)提炼成函数复用

2)使用宏

3)继承

4)使用闭包(boost::bind、boost::function)

上述是最为常用的,对于C++程序,闭包可能用得相对少一点。下列代码使用的是第5种:利用#include消除重复代码:

void f1()
{
try
{
。。。
}
catch (Aexception& a)
{
}
catch (Bexception& b)
{
}
catch (Cexception& c)
{
}
catch (Xexception& x)
{
}
}
void f2()
{
try
{
。。。
}
catch (Aexception& a)
{
}
catch (Bexception& b)
{
}
catch (Yexception& y)
{
}
catch (Zexception& z)
{
}
}
void f3()
{
try
{
。。。
}
catch (Cexception& c)
{
}
catch (Xexception& x)
{
}
catch (Yexception& y)
{
}
catch (Zexception& z)
{
}
}

消除重复代码之后,如下:

void f1()
{
try
{
。。。
}
#include "catch.cc"
}
void f2()
{
try
{
。。。
}
#include "catch.cc"
}
void f3()
{
try
{
。。。
}
#include "catch.cc"
}

catch.cc文件的内容为:

catch (Aexception& a)
{
}
catch (Bexception& b)
{
}
catch (Cexception& c)
{
}
catch (Xexception& x)
{
}
catch (Yexception& y)
{
}
catch (Zexception& z)
{
}

当然,可以用宏达到同样的目的,不过不用宏,也许是更明智的知法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

【干货】Python自动化审计及实现

本文由马哥教育Python自动化实战班导师wayne推荐,作者为SSS团队,转载自互联网,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。...

391100
来自专栏架构师之路

微服务架构之RPC-client序列化细节

第一章聊了【“为什么要进行服务化,服务化究竟解决什么问题”】 第二章聊了【“微服务的服务粒度选型”】 上一篇聊了【“为什么说要搞定微服务架构,先搞定RPC框架?...

42150
来自专栏程序员互动联盟

【专业技术】程序在内存中如何分配的?

好多初学者可能对程序在内存中如何布局都有疑问,在我们和用户的沟通过程中也发现有好多同学问相关的问题。这里转一个文章,讲得很不错的,大家可以看一下。 栈主要用来存...

23560
来自专栏非著名程序员

Android开发工具类之TimeUtils

开发最重要的就是速度和效率,其实我一直都非常支持使用第三方的工具类,因为毕竟是一些大牛封装好的,效率什么的,可能比一些初学者写的确实好一些,但是我建议在使用第三...

21050
来自专栏木木玲

设计模式 ——— 状态模式

12820
来自专栏IT技术篇

gcc 编译参数 -fno-strict-aliasing

  最近在项目中遇到一个问题,当使用double类型数据时,在进行jce编解码后会出现乱数据问题,比如encode一个数据.

652270
来自专栏C/C++基础

Protocol Buffers C++入门教程

protobuf(Protocol Buffers )是Google的开源项目,是Google的中立于语言、平台,可扩展的用于序列化结构化数据的解决方案。官网见...

1.4K10
来自专栏丑胖侠

《Drools7.0.0.Final规则引擎教程》第4章 4.2 ruleflow-group&salience

ruleflow-group 在使用规则流的时候要用到ruleflow-group属性,该属性的值为一个字符串,作用是将规则划分为一个个的组,然后在规则流当中通...

25570
来自专栏李家的小酒馆

Sublime 正则替换

打开替换的窗口 ? 2. 在Find What 写入待匹配的正则表达式,然后在Replace With写上要替换的内容($1代表第一个括号内内容,依次类推...

30800
来自专栏Java帮帮-微信公众号-技术文章全总结

第二十四天 多线程-多线程&线程安全【悟空教程】

进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。

13650

扫码关注云+社区

领取腾讯云代金券