此问题在此处已有答案:
Does C++ support named parameters?(1个答案)
去年关闭。
在C++中有没有一种方法可以像python一样通过名字传递参数?例如,我有一个函数:
void foo(int a, int b = 1, int c = 3, int d = 5);
字符串
我可以这样称呼它:
foo(5 /* a */, c = 5, d = 8);
型
或
foo(5, /* a */, d = 1);
型
此问题在此处已有答案:
Does C++ support named parameters?(1个答案)
去年关闭。
在C++中有没有一种方法可以像python一样通过名字传递参数?例如,我有一个函数:
void foo(int a, int b = 1, int c = 3, int d = 5);
字符串
我可以这样称呼它:
foo(5 /* a */, c = 5, d = 8);
型
或
foo(5, /* a */, d = 1);
型
2条答案
按热度按时间sd2nnvve1#
在C中没有命名的函数参数,但是你可以用C20中指定的初始化器来实现类似的效果。
获取所有函数参数并将其放入结构体中:
字符串
现在修改你的函数以获取该结构体的一个示例(为了提高效率,使用
const&
)型
现在你可以像这样调用函数:
型
这里有一个demo
wgx48brx2#
没有
必须按顺序传递参数,因此,要为
d
指定一个值,还必须为c
指定一个值,因为它是在c
之前声明的。