我知道头文件提供的好处和灵活性,如符号发现、编译器加速等等。但我不明白为什么现代C++ IDE不会根据代码文件中添加的成员/方法自动生成头文件,从而减少手动维护头文件与代码文件的工作量,反之亦然。由于IDE只对头文件进行增量更改,开发人员可以修改头文件并保留更改。
重构可以提供添加/重命名/删除方法参数、重命名方法、将方法移动到另一个类等功能。在此类重构期间,IDE会负责更新头文件和源文件。
此功能类似于Visual Studio中的可视化表单设计器。当您设计一个表单时,IDE会自动生成代码,并将其存储在单独的、由IDE管理的源文件中。开发人员也可以修改这些代码文件或在用户管理的源文件中包含其他代码。
在处理专业C++源代码时,我遇到了各种可疑的做法:
在头文件中定义整个类,包括函数代码(“为什么我要在两个地方定义一个类,我可以在一个地方定义它!”)
在头文件中定义有用的函数(“为什么要费心维护头文件,当我可以直接定义函数在头文件中!如果其他开发人员不想查找头文件,让他们使用‘转到声明’!”)
缺少公共/静态函数的头文件定义(减少编译时间?或者节省开发时间?)
虽然我不是专业的C++程序员,来自高级别的背景(JS、C#、AS3),但我亲身感受到了在C++中工作的“降级”,我认为IDE本身可以消除其中一些缺点。
我绝不是在嘲笑IDE或编译器。我知道C ++允许使用比现代语言(例如C#)更复杂的定义程序的方法,尽管模板的复杂性使我感到困惑,但我希望看到一些高级语言的好处带入C ++应用程序开发。