Scott Meyer 关于非成员函数增加封装并允许更优雅的设计(设计方面)的论点对我来说似乎非常有效。 看这里:Article
但是我对此有疑问。 (似乎还有其他人,尤其是库开发人员,他们通常完全忽略这一点)
当我使用成员函数时,代码通常看起来更好、更合乎逻辑。不过,这可能是一种后天习得的品味,只是需要一些时间来习惯先查看算法,然后再查看对象。 (颤抖)
所以也许我只有一个问题:
有了成员函数,我 和我的 IDE 就知道类可以做什么。
对我来说,这是巨大的!我使用任何不支持成员函数代码完成的东西来编程。在设计良好的库中,它完全取代了我的文档。 即使我会查看 api 文档,浏览成员列表也感觉绝对自然、合乎逻辑,我可以确定,好吧,这就是结束。如果方法不在那里,我可以放心地假设它不存在,我可以写我的非成员(member)非 friend 。
我在 STL 中容忍了这一点,因为,好吧,将算法与基本组件分开看是有意义的,而且你会习惯它的因素。
我还没有看到一个 IDE 可以告诉我哪些非成员函数在特定类上起作用。
这实际上是我的问题: 是否有 IDE(或 IDE 功能)有助于此代码约定?
最佳答案
我过去遇到过这种事情。
当时我的想法相当笨拙,但完成了工作: namespace 。
我做的是
namespace myclass
{
class MyClass
{
...
};
MyClass operator+(const MyClass& lhs, const MyClass& rhs){...}
}
关于支持 Scott Meyer 建议的 C++ IDE : Prefer non-member non-friend functions over members,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1714317/