std::的概念与作用

std::的概念与作用

大家好,又见面了,我是全栈君。

std::

当中std是名称空间,防止反复。比如说很多人给函数取名可能都叫f1();你使用的时候就可能造成问题。如果各人均把自己的f1()放进自己的名称空间。我们在使用的时候带上名称空间就不会有问题。


主要是起到了资源管理的作用。以下是一个样例:

有两个软件公司A公司和B公司,他们都是用C++语言开发他们的产品。那么,他们分别编写了a.h和b.h两个自己的头文件,这两个文件中都有一个叫func()的函数。

他们各自使用也没什么问题。

如果你公司也是一个软件公司,你如今要开发一个软件。必须同一时候用到A公司和B公司的头文件,同一时候会调用他们的func()函数。这个时候问题就来了,你调用的func()函数,编译器不知道应该选用A公司的还是B公司的。

为解决问题。C++採用了命名空间,这样。你调用A公司的func()函数。就使用A::func()。B公司亦然。


复习一下以上知识:

(A)这简单的程序里仅仅有全局和局部空间。没有其他的名字空间:

void  main( ) {

    std::cout << “”;  // 错误:std不存在。
    cout << “”;       // 错误:std不存在cout就不用提了。
}

(B)这个则多了一个叫std的名字空间。std这名字也可见了:

#include<iostream>
void main( ) {

    std::cout << “”;  // OK:可通过std骚扰cout。

    cout << “”;       // 错误:cout仍然被包在std里面,不可见。

}

iostream头文件中有std的声明。在编译之前,
预处理器会用iostream里的所有内容来取代
“#include<iostream>”这个预处理器指示符。

效果是,这程序包括iostream里的所有代码。
include是包括的意思。

包括指示是在全局空间里。所以在指示之后的不论什么地方,
std这个名字是可见、可訪问的。

(C)这个不包括声明std的代码却尝试打开std包,
     落了个跟(A)一样狼狈的下场:

using namespace std;
void  main( ) {

    std::cout << “”;  // 错误:std不存在。
    cout << “”;       // 错误:std不存在cout就不用提了。
}

(D)这个声明了std(曝露了std)并把std打开,
     让里面的名字(cin、cout、cerr、…)跟
     std一样暴露。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107753.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 从零开始搭建服务器,拥有一个属于自己的网站

    从零开始搭建服务器,拥有一个属于自己的网站创建一个属于自己,任何人都可以访问的网站(最最最详细的步骤)这篇文章将从购买服务器一直到最后网站完成备案,详细说明整个过程,就算是不懂编程的人照样可以拥有属于自己的服务器和网站必备条件:1:电脑一台2:网络3:money(30块钱)4:身份证一:首先选择阿里云、腾讯云或者其他任何一家的云,租一台ECS服务器。不管是哪一家的云服务器,基本上都有十块钱一个月的服务器,阿里云12-24岁自动认证学生,可以享受十块钱一个月的价格,这里就以阿里云为例。(注意:选择哪一家的服务器最好就使用哪一家的域名注

  • hexdump用法_comm命令

    hexdump用法_comm命令hexdump命令是Linux下的打印16进制的利器,它可以按我们指定的格式输出16进制,特别有用,配合eeprom来用简直是绝配。今天我们来介绍一个hexdump命令的使用: 首先我们准备一个测试用的文件test,十六进制如下: [plain]viewplaincopy00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  …

  • windows安装wget命令_linux安装命令install

    windows安装wget命令_linux安装命令install今天给服务器安装新LNMP环境时,wget时提示-bash:wgetcommandnotfound,很明显没有安装wget软件包。一般linux最小化安装时,wget不会默认被安装。可以通过以下两种方法来安装:1、rpm安装rpm下载源地址:http://mirrors.163.com/centos/6.2/os/x86_64/Packages/下载wget的RPM包:htt…

  • iPhone手机屏幕尺寸

    iPhone手机屏幕尺寸

  • java手机编译器_Java编译器手机版[通俗易懂]

    Java编译器手机版是一款十分好用的手机办公软件,用户可以使用此软件适用在线从文件浏览器中开启编码文档,便捷客户访问查询。全自动储存作用能够让客户在各种各样情景撰写编码,便捷客户应用。感兴趣的用户赶紧来下载Java编译器手机安卓版吧。Java编译器手机版特色1、Java编译器手机版将编译程序您的编码以最短的时间完成;2、app也可以编译程序C,C++编码及其Java程序流程;3、Java视频动画,…

  • Xshell修改终端字符编码【解决Linux日志中日志乱码】

    Xshell修改终端字符编码【解决Linux日志中日志乱码】

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号