C++ 如何在不必编译其 cpp 文件的情况下包含类头文件?

标签 c++ header include

我们可以包含 并且我们不关心它的 cpp 文件,但是为什么我们不能对我们自己的类做同样的事情呢?

因此,如果我的项目使用 50 个自定义类,我不仅需要包含 50 个,而且还必须编译/链接 50 个 cpp 文件(并弄乱项目树)。

问:有什么方法可以像使用标准库一样使用自定义 header 吗?

换句话说,有没有一种方法可以让我们不必在项目中添加所有这些 cpp 文件。我只想包含 ClassSnake.hpp,它知道在哪里可以找到 ClassSnake.cpp,它链接到 ClassVector.hpp,它知道如何找到 ClassVector.cpp ...所有这些都在一个自动菊花链中,而我不必显式添加那些 cpp 文件在我的项目树中。

编辑:我不太担心 cpp 文件的重新编译。我的问题是必须记住哪个类在内部链接到哪个其他类,这样我才能正确地将所有那些隐藏的 cpp 文件包含在项目树中……并弄乱树。

enter image description here

最佳答案

不是真的。

您缺少的是您的编译器工具链已经编译了位 <iostream>标题中没有的需求。

您的编译器(实际上是链接器)只是隐式链接此代码,而无需您指定它。

如果您想稍微清理一下您的项目树,您可以创建其他项目,这些项目是供一个主项目使用的代码库。

关于C++ 如何在不必编译其 cpp 文件的情况下包含类头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16572708/

相关文章:

c++ - boost shared_array<char> 并从 char* 设置它

c++ - Cuda(NVCC)编译器的_ITERATOR_DEBUG_LEVEL?

c++ - boost::log 在容器中保存消息,然后将所有消息发送到后端

ruby Hash 包括另一个哈希,深度检查

c++ - 3D 模型的均匀采样

file - 我是否在某处读到过 C++/CLI 让我们走向一个 "header-file"更少的社会,比如 Java

html - 页眉比页面宽

c - 如何查找是否设置了 MORE FRAGMENTS 字段?

git - 为什么 .gitignore 不包含以 ! 为前缀的文件?

PHP 包含没有输出?