拆分.cpp文件而不更改代码

akr*_*roy 4 c++ file-management

我有一个相当大的.cpp,为了便于管理,我想把它分成几个文件.但是,有很多全局变量,我想避免在不同文件中管理一堆extern声明.有没有办法让多个.cpp文件充当单个文件?本质上,我想要一种划分代码的方法,而不需要编译器识别除法.

har*_*ald 5

当然,您总是可以将各种CPP文件#include到一个主文件中,这是编译器看到的文件.但这是一个非常糟糕的主意,你最终会比正确重构文件更糟糕.


Rob*_*obᵩ 5

有没有办法让多个.cpp文件充当单个文件?

是.这就是定义#include.当您#include使用文件时,您将对包含的文件进行文本替换以代替该#include指令.因此,多个包含的文件一起起作用以形成一个翻译单元.

在您的情况下,将文件切成几个位.这样做 - 不要添加或减少任何文本行.不要添加标题保护或其他任何东西.您几乎可以在任何方便的位置破坏文件.限制是:中断不得出现在注释内部,也不得出现在字符串内部,并且必须出现在逻辑行的末尾.

根据某些约定命名新创建的部分文件.它们不是完整的翻译单元,所以不要命名它们*.cpp.它们不是正确的头文件,因此不要命名它们*.h.相反,它们是部分完整的翻译单元.也许你可以命名他们*.pcpp.

至于基名,选择原来的文件名,有顺序排列的后缀: MyProg01.pcpp,MyProg02.pcpp,等.

最后,用一系列#include语句替换原始文件:

#include "MyProg01.pcpp"
#include "MyProg02.pcpp"
#include "MyProg03.pcpp"
Run Code Online (Sandbox Code Playgroud)

  • 不,我永远不会写这样的代码.我的代码遵循典型的CPP约定,这些约定与标题中的内容以及CPP文件中的内容有关.但是OP没有要求最好的做法.他问如何实施他已经选择的糟糕做法. (2认同)