gpt4 book ai didi

c++ - 将 bool 变量作为参数传递的更好方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:04 30 4
gpt4 key购买 nike

我想知道是否有更好的方法来编写它以获得更好的可读性。如果您有如下功能,

void animal(bool hasFourLegs, bool hasHead, bool hasBody);

当你调用这个函数时,你最终会得到类似的东西

animal(true, false, true);

这让我每次遇到这样的函数时都会去看看定义。

所以...

我就是这样做的!

const bool HAS_FOURLEGS = true;
const bool NO_HEAD = false;
const bool HAS_BODY = true;

animal(HAS_FOURLEGS, NO_HEAD, HAS_BODY);

但我不喜欢在每次调用函数时都声明const bool

好像CPP不支持类似的东西

animal(bool hasFourlegs = true, bool hasHead = false, bool hasBody = true);

有没有更好更短的方法?

最佳答案

当我遇到与此相关的问题时,我有时会创建一个 enum,即使只有 2 个预期的选择:

例如,代替下面的函数声明:

bool search(..., bool recursive);

我会选择:

enum class SearchOpt
{
Recursive,
NonRecursive
};

bool search(..., SearchOpt opt);

因此,调用语法从:

bool found = search(..., true);

到:

bool found = search(..., SearchOpt::Recursive);

注意:这避免了您每次调用该函数时都必须创建自己的常量。

编辑

正如其他人所建议的那样,与其为每个选项设置单独的 bool 并因此为每个选项设置一个单独的 enum,不如使用一个 enum 配置为位标志。

关于c++ - 将 bool 变量作为参数传递的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32744112/

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