命名空间(namespace)

定义

在C++中,命名空间(Namespace)是一个特性,用于封装代码并避免名称冲突。命名空间可以看作是一个容器,其中可以包含类、函数、变量、常量、其他命名空间等。通过使用命名空间,我们可以更好地组织代码,提高代码的可读性和可维护性。

命名空间的格式

命名空间通过关键字namespace进行定义。例如:

namespace MyNamespace {  
    int x = 0;  
    void foo() {  
        // ...  
    }  
}

其中, namespace_name 是命名空间的名称,使用大括号 {} 将其中的元素定义放置在该命名空间内。 其中的声明可以是任何声明语句,如变量、函数或其他命名空间等。在这个例子中,MyNamespace是一个命名空间,它包含了一个整数变量x和一个函数foo

使用命名空间

要在代码中使用命名空间中的元素,我们需要指定命名空间名称。例如:

MyNamespace::x = 10;  
MyNamespace::foo();

命名空间别名

为了简化代码,我们可以使用using关键字为命名空间创建别名。例如:

using namespace MyNamespace;  
  
x = 20;  
foo();

命名空间的嵌套

命名空间可以嵌套,即一个命名空间可以包含另一个命名空间。例如:

namespace Outer {  
    int y = 100;  
  
    namespace Inner {  
        void bar() {  
            // ...  
        }  
    }  
}

在这个例子中,Outer是一个命名空间,它包含一个整数变量y和一个嵌套的命名空间InnerInner命名空间包含了一个函数bar

标准命名空间

在C++标准库中,所有的函数、对象和类型都被定义在一个名为std的命名空间中。因此,当使用C++标准库时,我们通常需要使用std::前缀,或者通过using namespace std;来使用标准库中的元素。

总结

命名空间是C++中一个非常有用的特性,它可以帮助我们更好地组织代码,避免名称冲突,并提高代码的可读性和可维护性。通过合理地使用命名空间,我们可以使代码更加清晰、易于理解和维护。

示例

namespace.cpp

#include "namespace.h"
namespace mystd
{
    int myadd(const int a,const int b)
    {
        return a+b;
    }
}


namespace mystd
{
    int myAdd2(const int a,const int b)
    {
        return a+b*2;
    }
}

namespace.h

#ifndef ___NAMESPACE__H
#define ___NAMESPACE__H
namespace mystd
{
int myadd(const int a,const int b);
int myAdd2(const int a,const int b);
}
#endif

main.cpp

#include
#include"namespace.h"
using namespace mystd;
int main()
{
    int sum=mystd::myadd(10,20);
    std::cout<

编译运行:

1:声明和定义都要加上自己定义的namespace 名字{}

 2:同一个namespace 名字{}可以在多处使用

你可能感兴趣的:(c++基础,c++)