首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数的默认参数

问函数的默认参数
EN

Stack Overflow用户
提问于 2021-11-03 11:41:12
回答 1查看 64关注 0票数 0

假设我在c++中有一个类似下面的函数,

代码语言:javascript
复制
int sum(int x = 0, int y = 0) {
    return x + y;
}

我可以通过调用像sum(3)这样的函数来使用默认值y,然后返回3。是否可以使用默认值x,而不是y?我知道我可以像sum(0,4)一样显式地调用带有默认值x的函数,但是有没有办法调用像sum(y = 4)这样的函数,然后使用默认值x呢?

EN

回答 1

Stack Overflow用户

发布于 2021-11-03 11:43:36

不,没有办法。一种可能的解决方法是使用std::optional

代码语言:javascript
复制
int sum(std::optional<int> x = {}, std::optional<int> y = {}) {
    return x.value_or(0) + y.value_or(0);
}

然后您可以使用{}或std::nullopt来使用默认值:sum({}, 4)。

请注意,如果将{}传递给int参数(而不是std::optional<int>),则无论默认参数是什么,它都将始终传递零。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69824226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档