C++:cmath里数学函数前面是否应该有std::,我不加也行

#include<iostream>
#include<cmath>
int main()
{
int a=sqrt(4);
std::cout<<a<<"\n";
}

第1个回答  2013-11-10
因为<cmath>是兼容C的头文件,C++标准允许(但不要求)其中含有在全局空间声明的函数,但是std::sqrt(4)一定是可行的追问

#include
#include
int main()
{
int a=std::sqrt(4);
std::cout<<a<<"\n";
}
报错 error C2039: 'sqrt' : is not a member of 'std'

追答

这什么垃圾编译器

追问

好像在vs上编译就行,你能把你的vc++的下载地址给我吗

本回答被网友采纳
第2个回答  2013-11-10
记得正确的书写方法有两种,一种是你写的这样,另一种是在宏定义后面加using namespace std;追问

int a=std::sqrt(4);这样就会错的

追答

不好意思我好像把你的问题理解错了。函数库里面的函数前面都不需要加std::的,cin,cout是输入输出流里面的,和cmath里面的函数是不同的。

本回答被提问者采纳
相似回答