C++:使用“.”表达式和函数调用上的运算符

2024-02-10

我想知道使用成员运算符是否是一个好的做法.像这样:

someVector = (segment.getFirst() - segment.getSecond()).normalize().normalCCW();

只是这样做是为了展示我想知道的两件不同的事情,即如果使用(expressions).member/function() and foo.getBar().getmoreBar()符合可读性和可维护性的精神。在我学习的所有 C++ 代码和书籍中,我从未见过它以这种方式使用,但它的使用却非常简单。但不想养成任何坏习惯。

可能比这更(或更不)重要的是,我还想知道以这种方式使用它是否会带来任何性能增益/损失,或者会在程序中引入错误的不可预见的陷阱。

先感谢您!


或无法预见的陷阱会在程序中引入错误

嗯,可能的陷阱是

  1. 更难调试。您将无法查看每个函数调用的结果,因此如果其中一个函数返回了意外的结果,您将需要将其分成更小的部分以查看发生了什么。此外,链中的任何调用都可能完全失败,因此,您可能必须再次将其分解才能找出哪个调用失败。

  2. 更难阅读(有时)。链接函数调用会使代码更难阅读。这取决于具体情况,这里没有硬性规定。如果表达式有点复杂,就会使事情变得难以理解。阅读您的具体示例我没有任何问题。

最终取决于个人喜好。我并不努力在一条线上尽可能多地适应,并且我已经被不应该链接的地方咬住了很多次,所以我倾向于把东西分解一点。但是,对于不太可能失败的简单表达式,链接就可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++:使用“.”表达式和函数调用上的运算符 的相关文章

随机推荐