概述
命名空间的基本理解
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作用常见用法介绍(个人学习笔记)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复