gpt4 book ai didi

c++ - 对所有成员函数和属性使用 "this"是不好的做法吗?

转载 作者:IT老高 更新时间:2023-10-28 12:57:23 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

6年前关闭。




Improve this question




最近我在这里发布了一段我的代码并得到了一条评论(与原始问题无关)使用 this对于类的所有成员函数和属性,“不仅仅是个人编码风格的问题,这是不好的做法” .不幸的是,该人拒绝详细说明,并告诉我自己查找。

我用了很多谷歌(但用“this”作为关键字查找任何东西真的很难),并环顾四周,但我只找到了some examples什么时候this必须使用。

我知道使用 this 的情况是不可避免的(具有相同名称的参数/变量、模板继承等),但后来我开始使用 this只要有可能,因为我可以更轻松、更快地找到解决代码的方法。我的理由包括:

  • 快速检查功能是否f应该是一个成员函数:如果没有 this在代码中,可以从类
  • 中取出
  • 快速检查是否 f可以是 const功能:如果没有this在左侧,很可能可以制作 const (并非总是如此,但我发现它在浏览时很有用)
  • f 中快速检查对象是否以“预定义”的方式“改变”自身,或者如果它是一个复合成员函数(使用 this 调用的成员方法与在没有它的情况下对对象进行操作的“外部”算法)
  • 调试;即如果成员属性在任何时候被分配了错误的值,我必须专注于包含 this 的行找到问题,因为其他行不改变对象

  • 坦率地说,关于这是“不良做法”的评论让我有点不安。但是,一个评论本身并没有多大意义,所以我想问 使用 this 有什么固有的坏处吗?所有成员函数和属性的一致性? 如果是,是什么 主要缺点 将其置于(可能是笨拙的、不受欢迎的或不广泛的)个人风格之外,并将其归入“不良做法”类别?

    最佳答案

    这个答案是基于意见的(正如其他人所指出的)。

    我认为这是一种不好的做法,因为:

  • 它不必要地使代码变大(最容易维护的代码是您不必编写的代码,因为您不必编写)。
  • 这是出乎意料的(虽然您可能会预料到,但其他人不会-因此您的代码中的 WTF/SLOC 比率会增加)
  • 它增加了维护成本。
  • 它需要额外的努力来保持代码一致(很少或没有额外的好处)。
  • 虽然看起来一致,但它是多余的(类似于使用语法 class <class-name> var; 声明所有对象实例,而不是 <class-name> var; 并忽略“零规则”)。
  • 它创造了不适合大多数开发团队和编码标准的编码习惯。
  • 重命名变量和函数以避免名称冲突比使用 this-> 好得多(因为用于类、函数和变量的名称构成了用于理解代码结构的心智模型)。
  • 在不遵循/接受这种做法的代码库中工作了几个月后,您可能会发现自己的代码难以阅读/维护(换句话说,在一年左右的时间里 可能会变得纯粹 ) .
  • 关于c++ - 对所有成员函数和属性使用 "this"是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26235942/

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