天天看點

使用#include消除重複代碼

使用#include消除重複代碼

消除重複代碼代碼很多種,比如:

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()

    catch (Yexception& y)

    catch (Zexception& z)

void f3()

消除重複代碼之後,如下:

#include "catch.cc"

catch.cc檔案的内容為:

catch (Aexception& a)

catch (Bexception& b)

{    

catch (Cexception& c)

catch (Xexception& x)

catch (Yexception& y)

catch (Zexception& z)

當然,可以用宏達到同樣的目的,不過不用宏,也許是更明智的知法。

繼續閱讀