【C++入门】命名空间

零.导言

        今天我将介绍C++入门时需要了解的知识,由于篇幅有限,我将分几篇介绍。同时作为备份以供自己复习。欢迎有需要的人持续关注。


一.命名空间初接触

        什么是命名空间?相信你偶然看见过这么一段代码:

#include<iostream>

using namesapce std;

int main()
{
    cout << "Hallo World" << endl;
    return 0;
}

        可能你会有这样的疑问:iostream 是什么?"using namespace std" 又是什么意思?cout 和 endl 是干嘛的?

        不急,且听我娓娓道来:iostream 是 C++ 标准库中用于处理输入输出操作的核心头文件;cout 是 C++ 标准库中的输出流对象,属于std::ostream 类型,用于向标准输出设备(如屏幕)输出数据‌;endl 是输出流控制符,用于在输出流中插入换行符并 ‌强制刷新缓冲区,等效于插入\n

        重点是 namespace ——声明命名空间的关键字。

        而 "using namespace std" 是 C++ 中用于声明‌标准命名空间‌的指令,其作用是将 std 命名空间内的所有标识符(如 cout、endl、string 等)引入当前作用域,使我们无需通过 std​​​​​​​:: 前缀即可直接使用这些标准库组件‌。


二.命名空间的使用

         就像 "using namespace std" 一样,我们使用命名空间可以有效的避免函数的冲突:

举个例子:在工作中,我构建了一个函数Add,你也构建了一个函数Add,同时,这两个函数不构成重载(即参数类型一样),那么程序就会报错。合理地使用命名空间,可以将函数的声明限定在命名空间内,不会在不适用该命名空间时进入符号表内,从而防止报错。

        命名空间的使用方式如下:

namespace engineer1
{
    int Add(int x, int y)
    {
        return x + y;
    }
}

        此时,我们想要使用此 Add 函数,要如下:

using namespace engineer1;

int main()
{
    int ret = Add(1, 2);
}

        或者:

int main()
{
    int ret = engineer1::Add(1, 2);
}

        这两种方式各有优劣:前者好处是使用方便,但是失去了使用命名空间的本意;后者虽然不方便,每次使用函数都要 :: 但是胜在能避免函数重复定义。

        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值