通过简单的代码来介绍使用命名空间中成员的三种方式(我们最常用到的命名空间是是标准库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. unity3d面试题与参考答案

    1.C#程序题 1 2 3 4 5 6 7 8 9 10 11 private static void aaa(int x) { x = 10; }   private static void bbb ...

  2. git更新代码出现错误

    git  pull代码时,出现如下的错误: SSL certificate problem: unable to get local issuer certificate 主要的原因是:没有ssl证书 ...

  3. centos6.4下安装mysql5.7.18

    1.安装前工作 在安装前需要确定现在这个系统有没有 mysql,如果有那么必须卸载(在 centos7 自带的是 mariaDb 数据库,所以第一步是卸载数据库). 卸载系统自带的Mariadb: 查 ...

  4. Gcc手册(转)

    手册链接地址:http://www.shanghai.ws/gnu/gcc_1.htm GCC中文手册 GCC现在是GNU中最主要和最流行的c & c++编译器. gcc/g++在执行编译工作 ...

  5. 关于Apache Shiro权限框架的一些使用误区的解释

    多了不说了,进入正题,shiro是个权限框架提供权限管理等功能,网上的教程一般都是互相抄,比如<shiro:principal property="xxx"/>这个标签 ...

  6. iOS之事件的传递和响应机制

    前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view.寻找最合适的view的底层实现.拦截事件的处理)->找到最合适的view后 ...

  7. 简单的 ajax demo

    2.最重要也是最核心的是要自己改下bootstrap-paginator.js源文件,如下: [javascript] view plain copy      function oneferRepo ...

  8. python函数回顾:setattr()

    描述 setattr 函数对应函数 getatt(),用于设置属性值,该属性必须存在. 语法 setattr 语法: setattr(object, name, value) 参数 object -- ...

  9. Django 进阶(分页器&中间件)

    分页 Django的分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views h ...

  10. 转载:Linux下查看/修改系统时区、时间

    一.查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" 2. 修改设置Linux服务器时区 方法 A 命令 : "tzselect" ...