如何将一个包含很多类的文件转换为每个文件一个类的多个文件? (C\C++)
所以我有这样结构的文件:一些包含然后很多类有时会相互调用:
#include <wchar.h>
#include <stdlib.h>
//...
class PG_1 {
//...
}
class PG_2 {
//...
}
//......
class PG_N {
//...
}
最佳答案
如果你没有使用版本控制(tsk tsk):
- 备份您的整个项目以防您搞砸。
- 将每个类剪切并粘贴到它自己的
classname.h
和classname.cpp
文件中。将classname
替换为类的名称。更新包含守卫。 - 添加您认为每个类的依赖项所必需的
#include
指令。 - 删除
multiclass.h
和multiclass.cpp
。 - 将单类文件添加到您的项目或联编文件中。从您的项目或 makefile 中删除多类文件。
- 构建项目或 makefile。
- 如果构建失败,请修复问题(例如缺少
#include
)并转到第 6 步。 - 构建完成后,运行您的测试。
- 如果测试失败,诊断并修复问题,然后转到第 6 步。
如果您使用的是支持文件级分支的修订控制系统(例如 Perforce,或者可能是 Subversion?),您应该注意保留修订历史,以便其他开发人员可以找到旧的更改:
- 在开发分支而不是主干中执行其余这些步骤。
- 对于
multiclass.h
和multiclass.cpp
中的每个类名,整合multiclass.h
和multiclass.cpp
到该类的单独classname.h
和classname.cpp
中。 - 提交包含所有这些集成的更改列表。这会生成原始文件的 N 个拷贝,并且它们都有指向原始文件的修订历史记录。
- 检查每个新文件以进行编辑。
- 从每个新文件中删除除该特定类所需的代码之外的所有内容,并更新包含防护。
- 添加您认为每个类的依赖项所必需的
#include
指令。 - 检查旧的
multiclass.h
和multiclass.cpp
以进行删除。 - 检查项目或 makefile 以进行编辑。
- 将单类文件添加到您的项目或联编文件中。从您的项目或 makefile 中删除多类文件。
- 构建项目或 makefile。
- 如果构建失败,请修复问题(例如缺少
#include
)并转到第 10 步。 - 构建完成后,运行您的测试。
- 如果测试失败,诊断并修复问题,然后转到第 10 步。
- 提交包含所有修改的更改列表。
如果您使用的是不支持文件级分支的版本控制系统,那么这两种方法的某种组合应该会奏效。希望你明白了。
关于c++ - 将一个包含很多类的文件转换为每个文件一个类的多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437783/