Scott Meyer关于非成员函数增加封装并允许进行更优雅的设计(在设计方面)的论点在我看来非常有效。
看到这里:Article

但是我对此有疑问。 (似乎也有其他人,尤其是图书馆开发人员,他们通常完全忽略了这一点)

使用成员函数时,代码通常看起来更好,更逻辑。不过,这可能是一种后天的品味,只需要花些时间先熟悉一下算法,然后再研究对象即可。 (不寒而栗)

所以也许我只有一个问题:

使用成员函数,和我的 IDE 知道该类可以做什么。

对我来说,这是巨大的!我没有使用不支持成员函数代码完成的编程方式。在精心设计的库中,它完全替代了我的文档。
即使我看了api文档,通过成员列表进行浏览也绝对是自然而合乎逻辑的,而且我可以确定,这就是结局。如果该方法不存在,我可以放心地假设它不存在,并且可以写我的非成员非 friend 。

我在STL中对此表示赞同,因为,很高兴看到除基本组件之外的算法,而且因为您已经习惯了它。

我还没有看到可以告诉我在特定类上可以使用哪些非成员函数的IDE。

这实际上是我的问题:
是否有一个IDE(或IDE功能)可以帮助实现此代码约定?

最佳答案

我过去碰到过这个东西。

当时我的想法很笨拙,但是完成了工作: namespace 。

我所做的是

namespace myclass
{
    class MyClass
    {
        ...
    };

    MyClass operator+(const MyClass& lhs, const MyClass& rhs){...}
}

关于支持Scott Meyer的建议: Prefer non-member non-friend functions over members的C++ IDE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1714317/

10-17 00:00