zoukankan      html  css  js  c++  java
  • 使用#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)

    {    

    }

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

  • 相关阅读:
    2020牛客暑期多校训练营(第二场)Interval 网络流平面图转化成最短路
    [P4001 [ICPC-Beijing 2006]狼抓兔子]
    [2020牛客暑期多校训练营(第二场)Greater and Greater]
    [2020牛客暑期多校训练营(第二场)All with Pairs]
    2020牛客暑期多校训练营(第二场)[ Boundary]
    数据结构的特性
    centos7 pgsql启动异常问题
    go实现服务授权
    go 使用线程池做请求限流
    go实现爬虫
  • 原文地址:https://www.cnblogs.com/aquester/p/9891599.html
Copyright © 2011-2022 走看看