岚天逸见

使用#include消除重复代码

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

1)提炼成函数复用

2)使用宏

3)继承

4)使用闭包(boost::bindboost::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)

{    

}

 

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

 

posted on   岚天逸见  阅读(361)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义

导航

统计信息

点击右上角即可分享
微信分享提示