C++库研究笔记——命名空间namespace 嵌套后的作用域问题

本文详细探讨了C++中的命名空间namespace的使用,包括::ant表示的根命名空间,嵌套命名空间下的作用域选择,平级命名空间的调用规则,以及相同命名空间名称下的调用策略。通过实例代码解析了命名空间的选择和调用优先级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结:

1.::ant 表根命名空间,或匿名空间

2.同时存在 ::ant::i 和::ant::blas::i,  ant::detail::i时,在::ant::detail中使用i时,默认调用ant::detail::i

3.平级namespace 调用用,要加相应的命名空间

4.域内命名空间可省

5.即使存在多个相同名字的命名空间,不会报错,按最局部分调用原则调用,如同全局变量与局部变量名字一样时,优先调用局部变量


代码:

#include <stdlib.h>

#include <iostream>

namespace detail
{
const int i=99;
}

namespace ant
{
namespace blas
{
const int i=0;
}//end blas

const int i=3;

namespace detail
{
const int i=33;
void test()
{
    std::cout<<"i:"<<i<<std::endl;  // 33
    std::cout<<"::detail::i"<<::detail::i<<std::endl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值