首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使代码存在于两个或多个非嵌套命名空间的范围内?

如何使代码存在于两个或多个非嵌套命名空间的范围内?
EN

Stack Overflow用户
提问于 2013-11-17 02:59:32
回答 2查看 50关注 0票数 1

当所有必要的命名空间都在使用时,我希望对象/函数只在当前作用域中。

例如,假设有一个H2O(水)对象。

它依赖于氢命名空间和氧命名空间才能被创建和使用。

由于water依赖于这两个名称空间,下面是我想要的行为:

代码语言:javascript
复制
int main(){

    using namespace oxygen;
    using namespace hydrogen;
    H2O water; //<- Works. In scope.
}


int main(){

    //using namespace oxygen;
    using namespace hydrogen;
    H2O water; //<- NOT IN SCOPE
}

int main(){

    using namespace oxygen;
    //using namespace hydrogen;
    H2O water; //<- NOT IN SCOPE
}

int main(){

    //using namespace oxygen;
    //using namespace hydrogen;
    H2O water; //<- NOT IN SCOPE
}

这个是可能的吗?如果不是,最好推荐哪些替代方案?

EN

回答 2

Stack Overflow用户

发布于 2013-11-17 03:02:31

不是的。(从根本上说,您无法决定其他开发人员如何选择引用您声明的符号。)

票数 2
EN

Stack Overflow用户

发布于 2013-11-17 03:03:48

这是不可能的。

我看不出这个有多大用处。不过,我马上想到的想法是创建一个包含Atoms的Molecule (或者不管正确的化学术语是什么--已经有一段时间了),并且只导出oxygen名称空间中的Oxygen Atom,以及其各自名称空间中的H2。这意味着只有在氧气和氢气都可见的情况下,才能构建水分子。

不过,我仍然有点怀疑这是不是正确的方法。名称空间用于组织。隐藏其他公共类型并不是特别有意义。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20022428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档