我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C++ 命名空间 using声明使用示例详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C++ 命名空间 using声明使用示例详解

正文

c++在开发的过程当中需要使用到库函数,那么基于库函数的使用最初的流程是:1、include 相关的头文件,比如:iostream,string。 2、使用命名空间::库函数,比如:std::cin,std::cout,但是这样写总是有点麻烦的,所以可以尝试简化写法,就是using声明。

注意,这里的 :: 是作用域运算符,就是用来指向命名空间空间当中的方法的。

最初的c++代码写法

#include <iostream>
int main(){
   std::cout << "hello world" << std::endl;
   return 0;
}

在这段代码当中,我们引入了iostream文件,cout和endl函数在iostream下的std当中,所以需要采用std::cout和std::endl的方法使用功能。

但是如果代码量巨增,这样的写法还是繁琐的,那么这个时候就可以采用using方法了,代码如下:

#include <iostream>
int main(){
   using std::cout;
   using std::endl;
   cout << "hello world" << endl;
   return 0;
}

这段代码当中,比上面的代码多了两行using方法,但是如果下面使用cout和endl方法的语句比较多的话,就可以省力很多了。但是上面的写法必须把所有的需要的方法都显式的声明出来,比如:

#include <iostream>
int main(){
   using std::cout;
   cout << "hello world" << endl;
   return 0;
}

这里声明了cout,但是在使用的过程当中,除了count还使用了endl,那么这个时候是会报错的

main.cpp: In function ‘int main()':
main.cpp:5:29: error: ‘endl' was not declared in this scope
    cout << "hello world" << endl;
                             ^
main.cpp:5:29: note: suggested alternative:
In file included from /usr/include/c++/4.8.2/iostream:39:0,
                 from main.cpp:1:
/usr/include/c++/4.8.2/ostream:564:5: note:   ‘std::endl'
     endl(basic_ostream<_CharT, _Traits>& __os)
     ^

那么有没有更加简单的写法,我们可以尝试直接using 整个std

#include <iostream>
int main(){
   using namespace std;
   cout << "hello world" << endl;
   return 0;
}

那么我们来聊聊using到底是干什么的:

在聊using之前,先搞清楚一个概念,就是命名空间,命名空间是C++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。而作用域就是定义一个量,这个量在代码当中起作用的范围。

那么接下来看using,using是用来声明命名空间的,声明命名空间实际上就是把指定的标识符加载到当前的作用域当中,直接使用。

但是这里有几个思考的点:

1、在学习c++的时候有一类文件叫做头文件,就比如刚才案例当中导入的iostream,在这类文件当中尽量不要使用using,因为来回包括太多隐式的变量,容易导致变量冲突。

2、using声明的一定要是include加载的,所以要卸载include的后面。

3、using写在代码的不同位置,产生的效用也是不一样的,这个需要结合作用域来详细理解(挖个坑,后来填上)

4、个人感觉using std::cout 写法上确实比 using namespace std要繁琐,但是使用的变量更加精确,因为using namespace std调用命名空间std内定义的所有标识符,其实代码当中没有用到那么多。

关于using先总结这么多,更多关于C++ 命名空间using声明的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C++ 命名空间 using声明使用示例详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++ 命名空间 using声明使用示例详解

这篇文章主要为大家介绍了C++ 命名空间 using声明使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-08

c++使用单例模式实现命名空间函数案例详解

这篇文章主要介绍了c++使用单例模式实现命名空间函数,本案例实现一个test命名空间,此命名空间内有两个函数,分别为getName()和getNameSpace(),本文结合实例代码给大家讲解的非常详细,需要的朋友可以参考下
2023-05-17

C++ 函数声明中的命名空间和作用域:解析它们对可访问性的影响

命名空间和作用域影响函数声明可访问性的规则:可以将函数声明在任何作用域中。在命名空间作用域中声明的函数默认是私有的,仅在该命名空间内可见。要使命名空间中的函数外部可用,请使用 public 访问修饰符。使用命名空间时,使用作用域解析运算符
C++ 函数声明中的命名空间和作用域:解析它们对可访问性的影响
2024-05-03

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录