命名空间

使用命名空间

在引用命名空间成员时,要用命名空间名和作用域分辨符对命名空间成员进行限定,以区别不同的命名空间中的同名标识符。即:
命名空间名::命名空间成员名

c++提供了一些机制,能简化使用命名空间的使用:

  1. 使用命名空间别名
可以为命名空间起一个别名,用来替代较长的命名空间名,如:
namespace PeopleA
可以用一个较短的别名替代它。如:
namespace PA = PeopleA
  1. 使用using命名空间成员名
using后面的命名空间成员名必须是由命名空间限定的名字,如:
using AA::i;
  1. 使用using namespace命名空间名
如:using namespace AA;
声明了在本作用域中要用到命名空间AA中的成员,在使用该命名空间的任何成员时都不必再使用命名空间限定。
  1. c++中可以声明无名的命名空间,如:
namespace 
{
    void fun()
    {
        //....
    }
}

由于命名空间没有名字,在其他文件中显然无法引用,它只在本文件的作用域有效。若无名命名空间的成员fun函数的作用域为文件A,在文件A中使用无名命名空间的成员,不用也无法用命名空间名限定。

using declarations和using directives的区别

  1. using declarations
    示例:
#include <iostream>
int main()
{
    using std::cout;
    using std::endl;
    cout << "Hello World!" <<endl;
    return 0;
}

using std::cout就是using declarations。

using declarations方式:这种方式每次只引入一个命名空间成员,形式是 using namespace_name::member_name
使用using declarations方式的name的作用域:它服从一般的作用域法则。name,从using declarations开始一直到当前作用域结束,都是可见的。

  1. using directives

using derective的形式是using namespace namespace_name;
示例:

using namespace std;

要点:using directive可以出现命名空间,函数和块中,但不能出现在类中。

参考
https://blog.csdn.net/cherishinging/article/details/73810785

原文链接: https://www.cnblogs.com/hunter-w/p/13263284.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    命名空间

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/363359

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午2:54
下一篇 2023年3月2日 下午2:54

相关推荐