namespace与访问限定符

简介: 在实际的开发过程中,很容易产生名字冲突的问题,为了解决这种问题我们就引入了namespace和访问限定符机制。

命名空间,当我想出现两个相同的person的时候,我们可以用名字空间。这样可以避免多个相同对象互相争夺空间用的时候写名字空间就可以了,全局直接两个冒号就可以了。这样就避免了二义性。也就是说我们可以通过访问限定符显示指出他的路径。

#include <iostream>usingnamespacestd;
namespacemyspace{
classPerson    {
public:
intget_age(void)
        {
returnm_age;
        }
voidset_age(intage)
        {
m_age=age+2;
        }
private:
intm_age{0};
    };
}
classPerson{
public:
intget_age(void)
    {
returnm_age;
    }
voidset_age(intage)
    {
m_age=age+2;
    }
private:
intm_age{0};
};
intmain()
{
Personperson1; // 默认是全局的person1    ::Personperson2; // 显示指出person2是全局空间下的myspace::Personperson3; // 显示指出person3是myspace空间下的return0;
}

如果我不想用::我也可以using namespace myspace。相当于它既去全局找,也去我这个空间找,但是如果出现两个person,一个在全局,一个在myspace下这样就不适用了,因为这样就有二义性了。

相关文章
|
9月前
|
Kubernetes Nacos 数据中心
k8s(9)Namespace(命名空间)
Namespace(命名空间)
177 0
|
11月前
|
编译器 C语言 C++
【C++】命名空间 ( namespace )
【C++】命名空间 ( namespace )
|
16天前
|
C语言 C++
C++(六)Namespace 命名空间
命名空间(Namespace)是为了解决大型项目中命名冲突而引入的机制。在多库集成时,不同类库可能包含同名函数或变量,导致冲突。C++通过语法形式定义了全局无名命名空间,并允许对全局函数和变量进行作用域划分。命名空间支持嵌套与合并,便于协同开发。其使用需谨慎处理同名冲突。
|
3月前
|
C++
C++一分钟之—名空间(namespace)的作用与使用
【6月更文挑战第22天】C++的命名空间是代码组织的关键,防止命名冲突并促进模块化。通过`namespace`定义代码块,如`MyNamespace{...}`,并使用别名(`namespace MN = MyNamespace::...`)简化引用。避免过度使用和嵌套,以及`using namespace`的滥用,而应在小范围内导入所需成员。明智选择名空间名称并有效利用`using`声明,能提升代码可读性和专业性。
30 1
|
3月前
|
C++
C++命名空间(namespace)的使用
C++命名空间(namespace)的使用
|
4月前
|
C++
C++中使用namespace关键字定义和访问命名空间的技术性探讨
C++中使用namespace关键字定义和访问命名空间的技术性探讨
31 3
|
4月前
|
C++
C++命名空间(Namespace)详解
C++命名空间(Namespace)详解
|
4月前
|
编译器 数据安全/隐私保护 C语言
C++ 之命名空间namespace【详解】
C++ 之命名空间namespace【详解】
|
安全 程序员 C语言
命名空间和using namespace std的详解【C++】
命名空间和using namespace std的详解【C++】
|
编译器 C语言 C++
【C++初阶】命名空间 namespace
【C++初阶】命名空间 namespace
104 0