C++命名空间

C++命名空间

为什么使用命名空间

  • 不同的头文件中可能用了相同的名字来定义类或函数,这样在程序中就会出现名字冲突

    • 名字冲突就是在同一作用域中有两个或多个同名的实体
  • 为了解决命名冲突

概念

  • 一个可以由用户自己定义的作用域,在不同的作用域中可以定义相同名字的变量,互不干扰,系统能够区分它们

三种使用方式

using 编译指令
  • using namespace std

    • 一次性将该空间中的所有实体全部引入,即使没有使用
作用域限定符,每次使用都用std::
  • std::cout << “hello” << std::endl;
using声明机制
  • 在开头位置加入

    • using std::cout

    • using std::endl

命名空间的定义

  • 在全局位置定义

    namespace wd
    {
        int add(int x, int y)
        {
            return x + y;
        }
    }
    

特殊的命名空间

匿名的命名空间,即不必特别声明的命名空间
  • 例如c的库函数与自己定义的函数

  • 为了兼容c语言而提出的

嵌套的命名空间
  • 定义时

    namespace wd
    {
        int number = 10;
    }
    
    namespace wh
    {
        int number = 100;
        void display()
        {
            cout << "wd::wh::display()" << endl;
        }
    }
    
  • 使用时

    void display(int number)
    {
        cout << "形参number = " << number << endl;
        cout << "wd命名空间中的number = " << wd::number << endl;
        cout << "wh命名空间中的number = " << wd::wh::number << endl;
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值