我以前的一位同事写了一个巨大的头文件,其中包含约100个具有内联成员函数定义的奇数结构。此结构文件包含在大多数类实现(cpp文件)和头文件中(不知道为什么我的同事不使用前向声明)
读取如此巨大的头文件不仅是一场噩梦,而且由于编译器不时抱怨多个定义和循环引用,很难跟踪问题。总体编译过程也确实很慢。
为了解决许多此类问题,我将该头文件的包含位置从其他头文件移到了cpp文件中(尽可能),并仅使用了相关结构的前向声明。我仍然继续收到奇怪的多重定义错误,例如“致命错误LNK1169:找到一个或多个多重定义符号”。
我现在正在考虑是否应该重构该结构头文件,并针对每个结构在单独的h / cpp文件中分离结构声明和定义。尽管在没有Visual Studio中的重构工具的情况下执行此操作会很痛苦并且很耗时,但这是解决此类问题的好方法吗?
PS:此问题与以下问题有关:头文件中有多个类,而每个类中只有一个头文件
当遇到这样的主要重构挑战时,您很可能会采用以下方法之一:批量重构或逐步进行重构。
批量执行此操作的优点是,您可以非常快速地(相对于增量方式)遍历代码,但是如果最终遇到一些错误,则可能需要花费大量时间才能将其修复。
逐步执行此操作并逐一拆分类,可以减少耗时的错误的风险,但是这将花费更多时间。
我个人将尝试将两种方法结合起来:
我已经发现对于创建自足的头文件有用的事情是预编译头。如果您未包含正确的数据,则该编译将失败。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句