社区
VC.NET
帖子详情
为什么加上这个就能用?using namespace是什么意思?
努力偷懒
2003-10-15 07:44:46
然后在头文件中写上
#include <iostream>
头文件尾上加using namespace std;
...全文
715
2
打赏
收藏
为什么加上这个就能用?using namespace是什么意思?
然后在头文件中写上 #include 头文件尾上加using namespace std;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kuangren
2003-10-16
打赏
举报
回复
引用命名空间
上面也说得比较清楚
rgbcn
2003-10-16
打赏
举报
回复
命名空间的概念
很多初学C++的人,对于C++中的一些基本的但又不常用的概念感到模糊,命名空间(namespace)就是这样一个概念。
C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用完全相同的名字;有时为了程序的方便,必需使用同一名字。比如你定义了一个变量string user_name, 有可能在你调用的某个库文件或另外的程序代码中也定义了相同名字的变量,这就会出现冲突。命名空间就是为解决C++中的变量、函数的命名冲突而服务的。解决的办法就是将你的strTemp变量定义在一个不同名字的命名空间中。就好像张家有电视机,李家也有同样型号的电视机,但我们能区分清楚,就是因为他们分属不同的家庭。
例如:
#include <iostream>
#include <string>
using namespace std;
//using namespace编译指示,使在C++标准类库中定义的名字在本程序中可以使用
//否则,iostream,string 等c++标准类就不可见了,编译就会出错。
//两个在不同命名空间中定义的名字相同的变量
namespace myown1{
string user_name = "myown1";
}
namespace myown2{
string user_name = "myown2";
}
int main()
{
cout<< "\n"
<< "Hello, "
<< myown1::user_name //用命名空间限制符myown1访问变量user_name
<< "... and goodbye!\n";
cout<< "\n"
<< "Hello, "
<< myown2::user_name //用命名空间限制符myown2访问变量user_name
<< "... and goodbye!\n";
return 0;
}
当然,我们也可以使用程序开头的预编译指示来使用命名空间中的名字。使用预编译指示的好处在于在程序中不必显式地使用命名空间限制符来访问变量。以上主程序可修改为:
int main()
{
using namespace myown1;
cout<< "\n"
<< "Hello, "
<< user_name
<< "... and goodbye!\n";
// using namespace myown2;
cout<< "\n"
<< "Hello, "
<< myown2::user_name //用命名空间限制符myown2访问变量user_name
<< "... and goodbye!\n";
return 0;
}
但第二个变量必需用命名空间限制符来访问,因为此时myown1空间中的变量已经可见,如果不加限制,编译器就会无法识别是那一个命名空间中的变量。这一点一定要注意。 以上只是初学者不清楚的一个概念,在以后的文章中还将继续讨论其它的一些概念。
19rac无数据丢失迁移到rac环境-rac备份恢复到异机rac环境
2-catalog start with 如何使用 3-restore database 在rman和sql命令行区别是什么 4-recover database [
using
backup controlfile until cancel ]何时在rman使用,何时在sql命令行使用。 5-进行数据恢复的时候,源...
详解:为什么尽量不要使用
using
namespace
std?
Q1:为什么尽量不要使用
using
namespace
std?为什么我看到很多资料都写着能不用就不用,能在大括号里面用就不要在外面用。我刚刚开始学 c++ 所以不太明白 A: 需要保证的是尽量不要在头文件里
using
任何东西尤其是
namespace
,要不然 include 进来的时候很容易莫名其妙产生命名冲突。 有条件的话,所有引入的符号都定义在自己的
namespace
里。任何情况下都不要
using
namespace
std 从理论上来说也是有道理的:因为系统库可能会升级,这样升级编译使
c++ 命名空间
using
namespace
std 是
什么意思
?
简要意思就是使用标准库,想知道更清楚的继续读下面的。
using
namespace
std 意思:
using
和
namespace
都是C++的关键词。 std 是标准程序库所驻之命名空间(
namespace
)的名称。 如果使用Boost的库 ,那就写
using
namespace
boost; 如果使用C++ 标准库 那就写
using
namespace
std; 就是暴露std这个名字空间,你就可以调用std这个名字空间下
为什么尽量不要使用
using
namespace
std?
c++中在使用
using
namespace
std时里面的名称不管需要与否,都导出名称空间中的所有名称,这是于名称空间的初衷背道而驰的,如果该名称与局部名称发生冲突,编译器将发出指示。
using
编译命令导入所有的名称,包括可能并不需要的名称。如果与局部名称发生冲突,则局部名称将覆盖名称空间版本,而编译器并不会发出警告。另外,名称空间的开放性意味着名称空间的名称可能分散在多个地方,这使得难以准确知道添加了哪些名称。 因此,避免使用
using
namespace
std,转而使用
using
...
VC.NET
7,540
社区成员
27,673
社区内容
发帖
与我相关
我的任务
VC.NET
.NET技术 VC.NET
复制链接
扫一扫
分享
社区描述
.NET技术 VC.NET
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章