gpt4 book ai didi

c++ - const 引用参数的默认值

转载 作者:太空狗 更新时间:2023-10-29 20:25:18 34 4
gpt4 key购买 nike

目前我有两个功能:

void foo(const A & a) {
...
result = ...
result += handle(a); // 1
bar(result);
}

void foo() {
...
result = ...
bar(result);
}

除了 1 之外,foo() 中的所有代码都是相同的。

我可以将它们合并到一个函数中吗?

void foo(const A & a = 0) {
...
...
if (a) result += handle(a); // this won't work, but can I do something similar?
bar(result);
}

顺便说一句,参数必须是一个引用,因为我想保持界面不变。

最佳答案

您可以使用 Null Object Pattern .

namespace
{
const A NULL_A; // (possibly "extern")
}

void foo(const A & a = NULL_A) {
...
result = ...
if (&a != &NULL_A) result += handle(a);
bar(result);
}

关于c++ - const 引用参数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24422056/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com