C++ 为什么不让用using namespace std; ?
4个回答
展开全部
std命名空间里面定义了很多程序员常用的名称(函数名、变量名、类名),只要一不注意就可能在程序中定义同名的东西,这样就会导致很难发觉的错误(编译器可能提示的是标准库内部的错误,实际上却是由用户的代码引起的)……
例如下面的代码在VS编译器上是不通过的:
#include <iostream>
using namespace std;
template<typename T>
void swap( T& a, T& b )
{
T l=a;a=b;b=l;
}
int main(){
int m=1,n=2;
double x=5.0,y=8.0;
swap<int>(m,n);
swap<double>(x,y);
}
报错是error C2668: “swap”: 对重载函数的调用不明确
但是代码中看不出重载,实际上是因为标准库定义了相同名字的函数……
展开全部
不是不让用,否则using还有存在价值吗?其实是为了强化命名空间概念,这是为了商品代码(多人完成的应用软件)避免函数、变量等命名冲突有效的方法,虽说多打几个字符稍显麻烦,但可以消除命名冲突,不得已而为之。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
标准的写法推荐用域运算符 比如std::cout std::cin 最规范最安全 但是 using本身很方便 也很适合初学
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果包含c++的头文件是必须要用的 否则编译错误
如果只有c的头文件 不用也可以 至少可以编译通过
如果只有c的头文件 不用也可以 至少可以编译通过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询