首页 >后端开发 >C++ >什么时候应该重载 C 中的逗号运算符?

什么时候应该重载 C 中的逗号运算符?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-02 22:37:03473浏览

When Should You Overload the Comma Operator in C  ?

何时使用逗号运算符重载

虽然重载逗号运算符在 C 中并不经常讨论,但围绕它的误解引发了以下问题:它的实际应用。

适当的用例

逗号运算符重载被证明很有价值的一种情况是在使用需要多个索引的地图时。考虑以下示例:

<code class="c++">enum Place {new_york, washington, ...};

pair<Place, Place> operator , (Place p1, Place p2)
{
    return make_pair(p1, p2);
}

map< pair<Place, Place>, double> distance;
distance[new_york, washington] = 100;</code>

在这种情况下,重载的逗号运算符允许使用两个值方便地对地图进行索引。然后将构造的对用作映射键。

注意: 值得一提的是,从 C 20 开始不推荐重载不带括号的逗号运算符,并在 C 23 中删除。因此,它是必须将其括在括号内,以便与最新的 C 版本兼容。

以上是什么时候应该重载 C 中的逗号运算符?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn