且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用#include消除重复代码

更新时间:2022-06-20 07:27:40

使用#include消除重复代码#include消除重复代码.pdf


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

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)

{    

}

 

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