专栏首页C++核心准则原文翻译C.163: 重载只用于基本等价的操作

C.163: 重载只用于基本等价的操作

C.163: Overload only for operations that are roughly equivalent

C.163: 重载只用于基本等价的操作

Reason(原因)

Having the same name for logically different functions is confusing and leads to errors when using generic programming.

逻辑上不同的函数使用相同的名称会引起混淆,在使用它们进行共通化编程时容易引发错误。

Example(示例)

Consider(考虑下面的代码):

void open_gate(Gate& g);   // remove obstacle from garage exit lane
void fopen(const char* name, const char* mode);   // open file

The two operations are fundamentally different (and unrelated) so it is good that their names differ. Conversely:

两个操作是根本不同的(也没有关联),因此它们使用不同的名称就很好。相反:

void open(Gate& g);   // remove obstacle from garage exit lane
void open(const char* name, const char* mode ="r");   // open file

The two operations are still fundamentally different (and unrelated) but the names have been reduced to their (common) minimum, opening opportunities for confusion. Fortunately, the type system will catch many such mistakes.

这还是两个根本不同的操作(而且毫无关联),但是名称已经被压缩到(共通的)最小限度,这种做法增加了混淆的可能性。幸运的是,很多这样的错误都会被系统捕捉到。

Note(注意)

Be particularly careful about common and popular names, such as open, move, +, and ==.

特别关注那些通用和常见的名字,例如open,move,+和==等。

Enforcement(实施建议)

???

原文链接:

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c163-overload-only-for-operations-that-are-roughly-equivalent


觉得本文有帮助?请分享给更多人。

关注【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

本文分享自微信公众号 - 面向对象思考(OOThinkingDalian),作者:面向对象思考

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++核心准则编译边学-F.15 优先使用简单、常规的方式传递参数

    Using "unusual and clever" techniques causes surprises, slows understanding by o...

    面向对象思考
  • C++核心准则​CPL.1:C++比C更好​

    C++ provides better type checking and more notational support. It provides bette...

    面向对象思考
  • C++核心准则ES.1: 标准库好于其他库和手写代码

    ES.1: Prefer the standard library to other libraries and to "handcrafted code"

    面向对象思考
  • Python解答智力题

    求解:一筐鸡蛋: 1个1个拿,正好拿完 2个2个拿,还剩1个 3个3个拿,正好拿完 4个4个拿,还剩1个 5个5个拿,还差1个 6个6个拿,还剩3个 7个7个拿...

    py3study
  • 搜索和推荐的公平性方面 (CS IR)

    最近的几项研究强调了搜索和推荐系统是如何在不同层面表现出偏见。抵制这种偏见,并在搜索中带来一定的公平性,不仅能创造一个考虑相关性和多样性的更加平衡的环境,而且对...

    Antonia
  • NeurIPS图表示学习研讨会录取论文揭晓:92篇论文看懂图表示学习

    10 月 18 日,2019 中关村论坛平行论坛 ——AI WORLD 2019 世界人工智能峰会在北京启幕。新智元杨静、科大讯飞胡郁、微软王永东、华为王成录、...

    新智元
  • 专题报告:海洋生物声学的探测与分类与深度学习(CS SD)

    019年11月21-22日,约30名研究人员齐聚加拿大BC省维多利亚州,参加由子午线组织、加拿大海洋网主办的“海洋生物声学深度学习检测与分类”研讨会。出席了研讨...

    用户6853689
  • 牛客网机试

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    云雀叫了一整天
  • Python|列表和循环遍历思考题

    (1)给定一个数组,你需要删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度和新的数组。

    算法与编程之美
  • Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com | CSDN | 简书

    Tyan

扫码关注云+社区

领取腾讯云代金券