c++ - 包括 C++ 源文件是一种批准的方法吗?

标签 c++ visual-studio include header

我有一个很大的 C++ 文件 (SS.cpp),我决定将其拆分成较小的文件,这样我就可以在不需要阿司匹林的情况下浏览它。所以我创建了

SS_main.cpp
SS_screen.cpp
SS_disk.cpp
SS_web.cpp
SS_functions.cpp

并将初始 SS.cpp 文件中的所有函数剪切粘贴到它们。

最后我将它们包含在原始文件中:

#include "SS_main.cpp"
#include "SS_screen.cpp" 
#include "SS_disk.cpp" 
#include "SS_web.cpp"
#include "SS_functions.cpp"

这种情况已经持续了几个月,这些是我遇到的问题:

  • 整个解决方案搜索(VS 中的 Shift-Ctrl-F)不会在包含的文件中搜索,因为它们未列为源文件。

  • 我必须手动指示它们以包含在 Subversion 中。

当文件变得非常大时,您认为在其他来源中包含源文件是一种可以接受的解决方法吗?我应该说,将已实现的类拆分为更小的类在这里不是一种选择。

最佳答案

有时可以包含一个实现文件,但这听起来不像其中之一。通常这仅在处理某些自动生成的文件时有用,例如 MIDL 编译器的输出。作为大文件的解决方法,没有。

您应该只将所有这些源文件添加到您的项目中,而不是 #including 它们。将一个大类拆分成多个实现文件并没有错,但只是将它们添加到您的项目中,像这样包含它们并没有多大意义。

-- 另外,仅供引用,您可以将文件添加到项目中,然后指示编译器忽略它们。这样他们仍然可以搜索。为此,将文件添加到项目中,然后右键单击它并转到“属性”,然后在“常规”下将“从生成中排除”设置为是。

关于c++ - 包括 C++ 源文件是一种批准的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1653605/

相关文章:

c++ - pthread_mutex_lock.c :62: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed

C# - 如何对字符串或字符进行编码?

c - gcc 退出时未定义对头文件中函数的引用

c++ - Qt显示/显示/提升窗口的正确方法

c++ - 将模板化状态的 vector 传递给构造函数时出现问题

c++ - 使用类别方法在 NSDecimalNumber 上重载算术运算符

c# - session 值在回发和页面刷新时变为空

visual-studio - 在 Visual Studio 2013 混合应用程序中更新 Cordova 版本

c++ - 从另一个 header 中的 header 调用静态方法

c++ - 多小类分布