C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在C中使用命名空间指令的正确方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在各种权威来源中,我看到了使用命名空间的各种方法.
C标准没有关注命名空间的正确使用.

假设我们有以下代码:@H_874_8@

example.h文件@H_874_8@

namespace Example {
    class MyClass
    {
    public:
        MyClass();
    } 
}

以下是两种实施方式:@H_874_8@

example1.cpp@H_874_8@

#include "example.h"

using namespace Example;

MyClass::MyClass();

example2.cpp@H_874_8@

#include "example.h"

namespace Example
{
    MyClass::MyClass();
}

两个实现都在gcc中编译时没有警告,因此,它是代码纯度或美观的问题.但无论如何,这两种方法的优点和缺点是什么?@H_874_8@

解决方法

这两个例子不一样:

一个(使用命名空间Example;)将让编译器看到当前命名空间中所有使用的命名空间. (意味着除非与其他命名空间存在歧义,否则不需要指定命名空间)@H_874_8@

第二个(名称空间示例{…})将向命名空间添加符号和代码.但是从名称空间外部看,它不会被视为当前名称空间中的名称空间.@H_874_8@

>您无需为当前命名空间声明使用.
>一个块只能在一个命名空间中,但可以使用多个命名空间.@H_874_8@

例如:@H_874_8@

//consider the following namespace
Namespace A
{
  void f()
  {

  }
}

从主要你有两个选择:@H_874_8@

调用命名空间@H_874_8@

int main()
{
  A::f();
  ...
}

添加使用和调用没有命名空间.@H_874_8@

using namespace A;
int main()
{
  f();
  ...
}

但是你不能将main添加到命名空间中,因为编译器找不到它:@H_874_8@

namespace A {
  int main()
  {
    f();
    ...
  }
}

会导致错误:@H_874_8@

大佬总结

以上是大佬教程为你收集整理的在C中使用命名空间指令的正确方法全部内容,希望文章能够帮你解决在C中使用命名空间指令的正确方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。