c++ - 有没有办法确保传递给函数的两个参数在 C++ 中被视为第一个和第三个参数?

标签 c++ overloading default-arguments

假设有一个具有以下原型(prototype)的函数:

void fun (int = 10, int = 20, int = 30, int = 40);

如果这个函数是通过传递 2 个参数来调用的,我们如何确保这些参数被视为第一个和第三个,而第二个和第四个被视为默认值。

最佳答案

// three and four argument version
void fun (int a, int b, int c, int d = 40)
{
    ...
}

// two argument version
void fun (int a, int c)
{
     fun(a, 20, c, 40);
}

// one and zero argument version
void fun(int a = 10)
{
     fun(a, 20, 30, 40);
}

但实际上我的建议是不要。

关于c++ - 有没有办法确保传递给函数的两个参数在 C++ 中被视为第一个和第三个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61585832/

相关文章:

c++ - 默认对象(如茶壶)上的 Directx 9 顶点颜色

java - 方法重载 : best usage approach

c++ - 为不明确的重载函数调用创建默认值

python - numpy 子类不会接受来自 python 继承类的 __new__ 参数

c++ - 使用链接列表实现堆栈类以验证 xml 文件

c++ - 使用 C++ 将属性分配给任意 R 对象?

python - Boost - 无法包装传入变量

pointers - Fortran 中重载箭头运算符 (=>)

c++ - 是否可以使用成员函数调用作为默认参数?

接受默认参数的 C 函数