为什么编译器让我调用pow和sqrt,即使我没有包含cmath?

时间:2013-10-10 17:20:07

标签: c++ cmath

我认为答案应该是否定的,但我今天编写了一些代码完美编译并使用pow和sqrt显示正确的答案,尽管起初我忘了添加 #include<cmath> 我在这里缺少什么?

2 个答案:

答案 0 :(得分:8)

您最有可能#include d其他头文件,而这些文件最终会#include d cmathmath.h编辑要在评论中回答您的问题:#include <iostream>可以做到这一点,这取决于您的C ++标准库。该标准不保证。

但是,如果你只是为自己声明这些功能,那么你也可以使用它们。虽然在std命名空间中为自己声明函数不符合标准,但不建议使用。

答案 1 :(得分:3)

标题仅包含函数声明;你可以完美地声明没有标题的函数,它也可以正常工作。

您可能在不知情的情况下将标题包含在您使用的其他标题文件中。

隐式声明,即使用函数而不声明它,在C ++中是非法的。