-1

我有一个当前签名为 f(a,b=0) 的函数。我想添加另一个参数 c。我希望我的函数以这样的方式调用,以便我可以调用当前行为的 f(a,b) 和 f(a,c)。一种方法是重载函数并复制函数代码。我不想从 f(a,c) 调用 f(a,b)。我正在使用 C++。

是否有任何标准设计模式或解决方案可以避免这种代码重复?

4

1 回答 1

6

我不完全确定我是否关注您,但您可以对此使用变体:

void f(int a, int b=0, int c=0);
void f2(int a, int c=0) { f(a, 0, c); }

请注意,没有重复的代码。现在你有另一个函数调用你的第一个函数,但允许你指定第三个参数而不是第二个。

于 2012-04-15T05:04:25.567 回答