gpt4 book ai didi

c++ - 我怎样才能只传递几个默认参数?

转载 作者:行者123 更新时间:2023-11-27 22:42:08 24 4
gpt4 key购买 nike

我创建了一个像这样的函数:

void triangle(int n, int start=1, int spcs=0, char dec_y='n', char lf='#',char decf='o') {
//some code
}

我想知道有什么方法可以像这样调用这个函数:

三角形(9, dec_y='y', lf='&');

不这样做:

void triangle2(int nn, char d_ec_y, char llf) {
triangle(nn, 1, 0, d_ec_y, llf, 'o');
}
// then in main simply
triangle2(9, 'y', '&');

最佳答案

您不能更改参数的顺序。所以你不能直接做你想做的事。您有三个选择:

  • 一个你不想的。
  • 您可以将参数作为结构传递。该结构可以具有默认值。你只能在调用函数之前改变你想要的那些。

例如:

struct params
{
params(int n_)
:n(n_)
{
}
int start=1;
int spcs=0;
char dec_y='n';
char lf='#';
char decf='o';
};

...
params p(0);
p.dec_y='y';
p.lf='&';
triangle(p);
  • 您可以使用 boost::parameter它提供了你想要的。检查this有关示例用法的问题。

关于c++ - 我怎样才能只传递几个默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47963103/

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