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

Ahm*_*aal 1 c++ cmath

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

Wal*_*ter 8

最有可能你的#include其他头文件反过来最终#included cmathmath.h.编辑在评论中回答您的问题:#include <iostream>本来可以做到的,这取决于您的C++标准库.该标准不保证.

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