通过简单的代码来介绍使用命名空间中成员的三种方式(我们最常用到的命名空间是是标准库std,下面的命名空间都以std为例):

  • 使用作用域符::
 #include<iostream>
int main()
{
////////求两个数的和
std::cout<<"Enter two numbers:"<<std::endl;
int v1,v2;
std::cin>>v1>>v2;
std::cout<<"The sum of "<<v1<<" and "<<v2<<" is "<<v1+v2<<std::endl;
return ;
}

前缀std::指出名字cout和cin是定义在名为std的命名空间中的。使用这种方式有一个缺点:当使用标准库中的一个名字时,必须显式地说明我们想使用来自命名空间std中 的名字。例如,需要写出std::cout,通过使用作用域运算符::来指出我们想使用定义在命名空间std中的名字cout。此方法显得比较繁琐。

  • using声明

using声明的形式:

using namespace_name::member_name;

其中,using是关键字,namespace_name是你将要使用的命名空间的名字,比如标准库std,member_name是你要使用的命名空间里的成员,比如cin、cout、endl等。

 #include<iostream>
////using 声明,当我们使用名字cin时,从命名空间std中获取它
using std::cin;
int main()
{
int i;
cin>>i; /////正确,cin和std::cin含义相同
cout<<i; /////错误,没有对应的using声明,必须使用完整的名字std::cout
std::cout<<i; ///正确,显式地从std中使用cout
return ;
}

注意:每个using声明引入命名空间中的一个成员,因此每个名字都需要独立的using声明
下面利用using声明重写第一个代码:

 #include<iostream>
/////通过下列using声明,我们可以使用标准库中的名字
using std::cin;
using std::cout; using std::endl;
int main()
{
cout<<"Enter two numbers:"<<endl;
int v1,v2;
cin>>v1>>v2;
cout<<"The sum of "<<v1<<"and"<<v2<<"is"<<v1+v2<<endl;
return ;
}

有了using声明,无须专门的前缀(形如std::)也能使用所需的名字。在上述程序中,一开始就对cin、cout和endl进行using声明,这意味着我们不用再添加std::形式的前缀就能直接使用它们。

  • using 指示

using指示的形式:

using namespace NAME;

其中,using和namespace都是关键字,NAME是命名空间的名字,如std。如果这里所用的名字不是一个已经定义好的命名空间的名字,则程序将发生错误。

 #include<iostream>
using namespace std;
int main()
{
cout<<"Enter two numbers:"<<endl;
int v1,v2;
cin>>v1>>v2;
cout<<"The sum of "<<v1<<"and "<<v2<<"is "<<v1+v2<<endl;
return ;
}

一条using声明语句一次只引入命名空间中的一个成员,而using指示使得某个特定的命名空间中的所有的成员都是可见的。
补充:如果命名空间名比较长,就会显得很繁琐,使用命名空间的别名为其设定一个较简单的同义词(或别名)。定义形式:

namespace primer = cplusplus_primer;

其中,namespace是关键字,primer是别名,cplusplus_primer是原来的名字。一个命名空间可以有多个同义词或别名,所有别名都与命名空间原来的名字等价。

C++使用命名空间中成员的三种方式的更多相关文章

  1. JavaScript中创建对象的三种方式!

    JavaScript中创建对象的三种方式! 第一种 利用对象字面量! // 创建对象的三种方式! // 1 对象字面量. var obj = { // 对象的属性和方法! name: 'lvhang' ...

  2. javascript中构造函数的三种方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. c++中经常需要访问对象中的成员的三种方式

    可以有3种方法: 通过对象名和成员运算符访问对象中的成员; 通过指向对象的指针访问对象中的成员; 通过对象的引用变量访问对象中的成员. 一.通过对象名和成员运算符访问对象中的成员 例如在程序中可以写出 ...

  4. 实现JavaScript中继承的三种方式

    在JavaScript中,继承可以通过三种手法实现原型链继承 使用apply.call方法 对象实例间的继承.     一.原型链继承 在原型链继承方面,JavaScript与java.c#等语言类似 ...

  5. java找出1~1000中素数的三种方式

    第一种: public class Sushu { public static void main(String[] args) { // TODO Auto-generated method stu ...

  6. Struts2学习(二)运行Action中方法的三种方式

    1.运行execute()方法 一般的能够直接在action中书写execute,调用action时会自己主动运行此方法 2.配置method方法 在struts.xml中配置action时.写met ...

  7. selenium中延时等待三种方式

    selenium中的延时等待方式有三种:强制等待:sleep()  隐示等待:implicitly_wait()  显示等待 WebDriverWait() 1.强制等待:sleep(),time模块 ...

  8. js中创建对象的三种方式

    1. 对象字面量 var obj={ name:"小小", age:3, car:{ brand:"baoma", } }; } 2.使用内置构造函数 var ...

  9. Android - 页面返回上一页面的三种方式

    今年刚刚跳槽到了新公司,也开始转型做Android,由此开始Android的学习历程. 最近在解很多UI的bug,在解bug过程中,总结了在UI的实现过程中,页面返回上一页面的几种实现方式. 一. 自 ...

随机推荐

  1. 回顾下WinMain

    我们在学习标准C++的时候,都知道每个应用程序运行时都会先进入入口点函数main,而当从main函数跳出时程序就结束了.在Windows编程里面,也是一样的,只是我们的入口点函数不叫main,叫Win ...

  2. JavaScript 变量,数据类型

    这篇笔记呢,咱记录下变量和数据类型的基础知识,因为两者有联系 所以放在一起记录 1 如何声明变量 变量声明使用var关键字,下面举一些变量声明的例子: <!DOCTYPE html> &l ...

  3. A guide to analyzing Python performance

    来源:http://www.huyng.com/posts/python-performance-analysis/ While it's not always the case that every ...

  4. hoj 2739 中国邮局问题

    /*若原图的基图不连通, 或者存在某个点的入度或出度为 0 则无解. 统计所有点的入度出度之差 Di, 对于 Di > 0 的点, 加边(s, i, Di, 0); 对于 Di < 0 的 ...

  5. 【BZOJ2298】[HAOI2011]problem a DP

    [BZOJ2298][HAOI2011]problem a Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相 ...

  6. SharePoint 离线安装

    SharePoint 离线安装,主要是AppFrabic服务出错,可以使用下来命令: "X:\WindowsServerAppFabricSetup_x64.exe" /i Cac ...

  7. Sequence I

    Sequence I (hdu 5918) Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

  8. mysql-font的理解

    mysql-front是为mysql制作的一种图形化界面工具,可以管理和操作数据库,比如建表,修改数据,拖拽方式的数据库和表格,可编辑/可增加/删除的域,可编辑/可插入/删除的记录,可显示的成员,可执 ...

  9. matlab学习笔记之五种常见的图形绘制功能

    分类: 离散数据图形绘制 函数图形绘制 网格图形绘制 曲面图形绘制 特殊图形绘制 本文重点介绍matlab五种图形绘制方法的后三种. 一.网格图形绘制 以绘制函数z=f(x,y)三维网格图为例,下面为 ...

  10. HDU 3182 Hamburger Magi(状压dp)

    题目链接:pid=3182">http://acm.hdu.edu.cn/showproblem.php?pid=3182 Problem Description In the mys ...