c++ - 如何在函数中使用默认参数?
问题描述
我有一个有 2 个可选参数的函数。有时我只需要第二个参数。
宣言:
void function(int a = 0, int b = 0);
使用第一个参数调用:
function(10);
仅使用第二个参数调用:
function(??,10);
如何使第二次通话有效?据我所知,这样做的唯一方法是使用默认参数作为第一个变量,但必须有更好的方法。
解决方案
没有办法以简单的方式做到这一点,但是你可以使用std::optional
它将表现得非常接近:
#include <optional>
void function(std::optional<int> optional_a = {}, std::optional<int> optional_b = {}) {
auto a = optional_a.value_or(0);
auto b = optional_b.value_or(0);
std::cout << a << " " << b << "\n";
}
现在像这样调用函数:
function();
function(5);
function({}, 10);
将给出以下输出:
0 0
5 0
0 10
但是有两个不便之处:您需要引入临时变量,并且调用者不知道从函数声明中判断的默认值是什么。
推荐阅读
- javascript - 错误:必须打开数据库连接才能将文件存储在 GridFSStorage._handleFile
- reactjs - React Router 找不到历史记录
- powerbi - 如何在电源查询中执行countifs(小于或大于)?
- typescript - 找不到模块“vuelidate”的声明文件
- python - 寻找图像pygame的路径
- mongodb - 将用户从 Firebase 迁移到 MongoDB
- python - Pip安装模块未安装
- swift - 在 coredata 中更新用户数据的问题
- android - 如何检测Android中按下按钮的时间?
- python - OpenCV Python VideoWriter 保存损坏的视频