在python中,可以从不同的模块导入特定的功能集,而不是导入整个文件
例如:
而不是使用import math
并使用print math.sqrt(4)
,直接导入该函数:
from math import sqrt
print sqrt(4)
它运作得很好。
在C
和C++
中,必须包含整个头文件才能使用它提供的一个函数。例如,在C ++中
#include<iostream>
#include<cmath>
int main(){
cout<<sqrt(4);
return 0;
}
C
代码也类似(不相同)。
是否有可能像python一样,只能将一个函数从头文件中包含到程序中?
例如:仅包含sqrt()
中的cmath
函数?
可以吗?
答案 0 :(得分:3)
不,这是不可能的。 C ++缺少一个真正的模块系统,所以我们留下了预处理器包含。添加新类型模块系统的提议没有进入C ++ 11。有关该提案的详情,请参阅C++ Modules - why were they removed from C++0x? Will they be back later on?。
如果这是关于您自己的库,您唯一的机会是将库拆分为较小的独立库。如果图书馆不是您的图书馆和/或您无法改变它,您将不得不忍受它。但是,无论如何,真正的问题是什么?