VC++中"using namespace std"有什么用的。 50
2016-01-09 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
std是一个命名空间
C++中引入命名空间的主要是为了处理程序中常见的命名冲突,它是由ANSI C++引入的可以由用户命名的作用域。所谓命名空间,实际上就是一个由程序设计者命名的内存区域 ,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开来。如:
namespace ns //指定命名空间ns
{
int a;
double b;
}
namespace是定义命名空间所必须写的关键字,ns是用户自己指定的命名空间的名字(可以用任意的合法标识符),在花括号内是声明块,在其中声明的实体称为命名空间成员(namespace member)。现在命名空间成员包括变量a和b,注意a和b仍然是全局变量,仅仅是把他们隐藏在指定的命名空间中而已。如果在程序中要使用变量a和b,必须加上命名空间名和作用域分辨符“::”,如ns::a,ns::b。这种用法称为命名空间限定,这些名字(如ns::a)称为被限定名。
C++中命名空间的作用类似于操作系统中的目录和文件的关系,由于文件很多,不便管理,而且容易重名,于是设立若干子目录,把文件放到不同的子目录中,不同子目录中的文件可以同名,而调用文件时应指出文件路径。
命名空间的作用是建立一些相互分隔的作用域,把一些全局实体分隔开来,以免产生名字冲突。
可以根据需要设置多个命名空间,每个命名空间名代表一个不同的命名空间域,不同的命名空间不能同名。这样可以把不同的库中的实体放到不同的命名空间中,或者说,用不同的命名空间把不同的实体隐蔽起来。过去我们用的全局变量可以理解为全局命名空间,独立于所有有名的命名空间之外,它是不需要用namespace声明的,实际上是由系统隐式声明的,存在于每个程序中。
声明一个命名空间时,花括号内不仅可以包括变量,而且还可以包括一下类型:
变量(可以带有初始化)
常量
函数(可以是定义或声明)
结构体
类
模板
命名空间(在一个命名空间中又定义一个命名空间,即嵌套的命名空间)
例如:
namespace ns1
{
const int RATE=0.08;
double pay;
double tax()
{
return a*RATE;
}
namespace ns2
{
int age;
}
}
输出命名空间ns1中的成员的数据,可以采用下面的方法:
cout<<ns1::RATE<<endl
cout<<ns1::pay<<endl
cout<<ns1::tax()<<endl
cout<<ns1::ns2::age<<endl
可以看到命名空间的声明方法和使用方法与类差不多。但是他们之间有一点差别:声明类时在右花括号的后面有一分号,而在定义命名空间时,花括号的后面没有分号。
C++中引入命名空间的主要是为了处理程序中常见的命名冲突,它是由ANSI C++引入的可以由用户命名的作用域。所谓命名空间,实际上就是一个由程序设计者命名的内存区域 ,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开来。如:
namespace ns //指定命名空间ns
{
int a;
double b;
}
namespace是定义命名空间所必须写的关键字,ns是用户自己指定的命名空间的名字(可以用任意的合法标识符),在花括号内是声明块,在其中声明的实体称为命名空间成员(namespace member)。现在命名空间成员包括变量a和b,注意a和b仍然是全局变量,仅仅是把他们隐藏在指定的命名空间中而已。如果在程序中要使用变量a和b,必须加上命名空间名和作用域分辨符“::”,如ns::a,ns::b。这种用法称为命名空间限定,这些名字(如ns::a)称为被限定名。
C++中命名空间的作用类似于操作系统中的目录和文件的关系,由于文件很多,不便管理,而且容易重名,于是设立若干子目录,把文件放到不同的子目录中,不同子目录中的文件可以同名,而调用文件时应指出文件路径。
命名空间的作用是建立一些相互分隔的作用域,把一些全局实体分隔开来,以免产生名字冲突。
可以根据需要设置多个命名空间,每个命名空间名代表一个不同的命名空间域,不同的命名空间不能同名。这样可以把不同的库中的实体放到不同的命名空间中,或者说,用不同的命名空间把不同的实体隐蔽起来。过去我们用的全局变量可以理解为全局命名空间,独立于所有有名的命名空间之外,它是不需要用namespace声明的,实际上是由系统隐式声明的,存在于每个程序中。
声明一个命名空间时,花括号内不仅可以包括变量,而且还可以包括一下类型:
变量(可以带有初始化)
常量
函数(可以是定义或声明)
结构体
类
模板
命名空间(在一个命名空间中又定义一个命名空间,即嵌套的命名空间)
例如:
namespace ns1
{
const int RATE=0.08;
double pay;
double tax()
{
return a*RATE;
}
namespace ns2
{
int age;
}
}
输出命名空间ns1中的成员的数据,可以采用下面的方法:
cout<<ns1::RATE<<endl
cout<<ns1::pay<<endl
cout<<ns1::tax()<<endl
cout<<ns1::ns2::age<<endl
可以看到命名空间的声明方法和使用方法与类差不多。但是他们之间有一点差别:声明类时在右花括号的后面有一分号,而在定义命名空间时,花括号的后面没有分号。
2014-10-05
展开全部
std 是一个命名空间..
不同的命名空间可以有相同的类名被定义 ..
using namespace std;
就是指明下面的程序使用std,如果不用这句指明的话就要用std::string(string是std空间中定义的
也可以在全局空间中定义,只要名字空间不一样即可..)..
否则可以默认名字空间中有std.便不用std::来修饰
它是C++新标准中有的,解决多人作编大程序时名字冲突问题。比如A B两个班都有叫张三的人,你要使用A班的张三,必然要先指名是A班这个名字空间(namespace),然后你对张三的所有命令才能达到你的预想,不会叫错人
如果你用#include<iostream.h>就不需写这句话(旧标准)。但是如果你用
#include<iostream>就必须要写。
来自: 百度知道
不同的命名空间可以有相同的类名被定义 ..
using namespace std;
就是指明下面的程序使用std,如果不用这句指明的话就要用std::string(string是std空间中定义的
也可以在全局空间中定义,只要名字空间不一样即可..)..
否则可以默认名字空间中有std.便不用std::来修饰
它是C++新标准中有的,解决多人作编大程序时名字冲突问题。比如A B两个班都有叫张三的人,你要使用A班的张三,必然要先指名是A班这个名字空间(namespace),然后你对张三的所有命令才能达到你的预想,不会叫错人
如果你用#include<iostream.h>就不需写这句话(旧标准)。但是如果你用
#include<iostream>就必须要写。
来自: 百度知道
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询