首页 > 解决方案 > “释放你的功能”方法:IDE 可以提供提示吗?

问题描述

我一直在听 Klaus Iglberger 在 CppCon 2017 上的演讲,名为“释放你的功能”(你可以在 Youtube 上找到它:https ://www.youtube.com/watch?v=WLDT1lDOsb4 ),它更好地揭示了一个概念背后的基本原理来自 Effective C++ 书籍指南:“Prefer non-member non-friend functions to member functions”

纵观所有的优点和缺点,有一个缺点让我非常困惑,那就是:你不使用 调用这些函数operator.,它们可以在任何地方自由定义。

阅读这篇关于接口原则的文章,其中广泛讨论了什么应该被视为类公共接口http://www.gotw.ca/publications/mill02.htm),我很清楚这些免费功能是类接口的一部分,即使它们可以在项目中任何位置的任何文件中定义。

为什么是劣势?因为根据我的经验,将代码分散在大型项目中会导致代码重复,因为开发人员无法知道已经为该类实现了某些实用程序功能,因此他们将再次对其进行编码。当您使用operator.对对象调用函数时,不会发生这种情况,不仅因为语言本身强制成员函数在声明类的同一文件中声明,而且还仅仅是因为 IDE 通常会弹出- 按下“.”时,列出已经可用的成员函数。

所以问题是:假设接口原则是正确的,假设自由函数方法是一个很好的编码指南,为了摆脱人们没有找到已经为一个类编写的自由函数的缺点,在技术上是否可行IDE 是否可以帮助开发人员展示整个类的公共接口,而不仅仅是类成员?或者在实践中它会是计算的压倒性的,甚至是无法实现的?

标签: c++idenon-member-functions

解决方案


推荐阅读