将头文件中的特定函数包含到 C++ 中的代码中

zhi*_*rzh 5 c++ python include header-files

在 python 中,可以从不同的模块导入特定的功能集,而不是导入整个文件

前任:

而不是 usingimport math和 using print math.sqrt(4),直接导入函数:

from math import sqrt
print sqrt(4)
Run Code Online (Sandbox Code Playgroud)

它工作得很好。


Cand 中C++,必须包含整个头文件才能仅使用它提供的一个函数。例如,在 C++ 中

#include<iostream>
#include<cmath>
int main(){
    cout<<sqrt(4);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

C 代码也将相似(不相同)。


是否有可能就像在 python 的情况下一样,一个人可以只将头文件中的一个函数包含到他们的程序中?
例如:仅包括sqrt()来自cmath?

可以做到吗?

Chr*_*ckl 6

不,这是不可能的。C++ 缺乏真正的模块系统,所以我们只剩下预处理器包含。添加一种新的模块系统的提议并没有进入 C++11。请参阅C++ 模块 - 为什么将它们从 C++0x 中删除?他们以后会回来吗?有关该提案的更多信息。

如果这是关于您自己的库,您唯一的机会就是将库拆分为更小的独立库。如果图书馆不是你的和/或你不能改变它,你将不得不忍受它。但真正的问题是什么?