C++ 为什么编译器允许我调用pow和sqrt,即使我没有';不包括cmath?
我认为答案应该是否定的,但我今天编写了一些代码,这些代码编译得非常完美,并使用pow和sqrt显示了正确的答案,尽管一开始我忘了添加C++ 为什么编译器允许我调用pow和sqrt,即使我没有';不包括cmath?,c++,cmath,C++,Cmath,我认为答案应该是否定的,但我今天编写了一些代码,这些代码编译得非常完美,并使用pow和sqrt显示了正确的答案,尽管一开始我忘了添加 #包括 这里缺少什么?标题仅包含函数声明;您可以在不使用头的情况下完美地声明函数,它也可以正常工作 在您不知道的情况下,该头文件可能包含在您使用的其他头文件中 隐式声明,即使用函数而不声明它,在C++中是非法的。 < P>头只包含函数声明;您可以在不使用头的情况下完美地声明函数,它也可以正常工作 在您不知道的情况下,该头文件可能包含在您使用的其他头文件中 一个隐式
#包括
这里缺少什么?标题仅包含函数声明;您可以在不使用头的情况下完美地声明函数,它也可以正常工作 在您不知道的情况下,该头文件可能包含在您使用的其他头文件中
隐式声明,即使用函数而不声明它,在C++中是非法的。
< P>头只包含函数声明;您可以在不使用头的情况下完美地声明函数,它也可以正常工作 在您不知道的情况下,该头文件可能包含在您使用的其他头文件中一个隐式声明,即使用函数而不声明它,在C++中是非法的。
< P>最可能的是,你<代码> >包含< /代码>其他头文件,而最终的代码< >代码>包含< /代码> d代码> cMadie<代码>或<代码>数学> h < /代码>。强> >编辑< /强>回答你的问题:<代码>包含< /COD>可能已经完成了,这取决于C++标准库。标准并不能保证这一点 但是,如果您只是为自己声明函数,那么您也可以使用它们。尽管为自己在std
命名空间中声明函数不符合标准,因此不能推荐。最有可能的情况是,您#包括
d其他头文件,这些头文件最终包括dcmath
或math
<强> >编辑< /强>回答你的问题:<代码>包含< /COD>可能已经完成了,这取决于C++标准库。标准并不能保证这一点
但是,如果您只是为自己声明函数,那么您也可以使用它们。尽管为自己在
std
命名空间中声明函数不符合标准,因此不能推荐。因为它可能已经包含在项目中包含的其他标准标题中。感谢您的快速回答。我只包括了iostream。这样做可以吗?因为它可能已经包含在项目中的其他标准标题中。谢谢您的快速回答。我只包括了iostream。这样行吗?谢谢。我知道我应该声明他们是安全的。我只是想知道为什么它会接受他们。再次感谢,谢谢。我知道我应该声明他们是安全的。我只是想知道为什么它会接受他们。再次感谢