
消除重复代码代码很多种,比如:
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)
当然,可以用宏达到同样的目的,不过不用宏,也许是更明智的知法。