gpt4 book ai didi

c++ - 为函数使用特定的默认参数

转载 作者:太空狗 更新时间:2023-10-29 21:24:24 25 4
gpt4 key购买 nike

如果我有以下函数定义。在调用时我希望只为 a 和 c 传递值并使用 b 的默认值我将如何调用此函数

void func(int a=5,int b=2, int c=3)
{
..........
.........
}

最佳答案

C++ 不支持以下语法:

func(1, , 2);

这意味着只有您省略的最右边的参数才能采用默认值。

如果您希望能够拥有任意组合的默认参数,您可以考虑使用 boost::optional :

#include <boost/optional.hpp>
#include <iostream>

typedef boost::optional<int> OptionalInt;
typedef boost::optional<int> Default;

void func(OptionalInt a, OptionalInt b, OptionalInt c)
{
if (!a) a = 5;
if (!b) b = 2;
if (!c) c = 3;
std::cout << *a << std::endl;
std::cout << *b << std::endl;
std::cout << *c << std::endl;
}

int main()
{
func(1, Default(), 1);
}

输出:

1
2
1

关于c++ - 为函数使用特定的默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16256899/

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