我是靠谱客的博主 包容便当,最近开发中收集的这篇文章主要介绍【c++】命名空间namespace作用常见用法介绍(个人学习笔记),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

命名空间的基本理解

C++在C语言的基础上增加了命名空间这个新的特性,随着在现实环境下项目工程庞大,一个人很难独立完成,往往以多人合作的方式来完成一个大的项目,对变量的命名就有可能出现混乱的情况,命名空间的引入则很好的解决了这个问题。c++中namesapce可以在多人开发过程中避免命名重复导致的问题,在实际项目开发中,程序员可以下自己创建的命名空间中根据自己的代码习惯定义名称。

1.标准命名空间std

#include<iostream>//c++标准库
using namespace std;//标准命名空间
int main()
{
    cout<<"hello c++";//输出一句话
    std::cout<<"hello c++";//或者可以这样写
    cout<<endl;//换行
    return 0;
}

在理解标准命名空间之前,我们要先理解c/c++标准库。由于c++标准库中的函数和对象都在标准命名空间std中限定,为了防止用户自定义函数或类与标准中命名冲突,所以我们使用标准库的函数和对象的时候必须加上std标准命名空间。

C/C++标准库主要包含3部分: STL、IO流及本地化、C的函数库。标准库不是STL,STL是标准模板库,是标准库的一个子集。它是一个可复用的组件库,其中包含了很多实用的算法和数据结构。STL是一个泛型思维的集中体现。出自:C++命名空间、标准库(std,全局命名空间)

C++非标准库中不存在std类,调用函数时不需要使用std。
非标准库调用

#include<iostream.h>

推荐:C/C++之标准库和标准模板库

2.多个命名空间的使用

#include <iostream>

namespace name1{
    std::string string3="给我一个赞好吗 ";
}
namespace name2{
    std::string string2="hello c++";
}
namespace name3 {
   std::string string1="i like c++";
}
int main() {
    std::cout<<name1::string3<<std::endl;
    std::cout<< name2::string2<<std::endl;
    std::cout<<name3::string1<<std::endl;
    return 0;
}


give me one zan ,please 给我一个赞好吗
hello c++
i like c++

命名空间相当于给变量和函数和对象一个“国籍”,用“国籍”来给这些变量函数对象归类,不至于让”社会“太乱。

3.多个命名空间的嵌套定义

在C++17中添加了很多新的特性,其中有了可以以一种更加简洁的形式描述嵌套命名空间。

namespace A::B::C{
int a(){
    return s;
  }
}

以上代码等同于

namespace A{
     namespace B{
		namespace C{
      	}
 	}
}

多个namespace的嵌套使用,

namespace ABC
{
        void fun1(){printf("this is fun1.n");}

        namespace map
        {
                void fun2(){printf("this is fun2.n");}
        }
}

using namespace ABC;
using namespace ABC::map;  //使用两个namespace, 相当于把两个空间中的变量和函数都抠出来,供本函数使用

int _tmain(int argc, _TCHAR* argv[])
{
        fun1();
        fun2();

        return 0;
}

最后

以上就是包容便当为你收集整理的【c++】命名空间namespace作用常见用法介绍(个人学习笔记)的全部内容,希望文章能够帮你解决【c++】命名空间namespace作用常见用法介绍(个人学习笔记)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部