我从
http://www.cplusplus.com/doc/tutorial/namespaces/开始就读了一下
而且看起来像一个结构体能够相同的东西?甚至是一个类的事情.也许这里的人可以更好地定义一个命名空间,以及它与struct / class的区别?
而且看起来像一个结构体能够相同的东西?甚至是一个类的事情.也许这里的人可以更好地定义一个命名空间,以及它与struct / class的区别?
解决方法
命名空间和类类型不具备相同的功能.命名空间主要用于将类型和函数组合在一起,以避免名称冲突,而类类保存对该数据工作的数据和操作.
要通过使用类类来对功能和对象进行分组,您必须使其成为静态的:
struct X { static void f(); };
没有静态,你将不得不创建类类的实例来使用它们.命名空间在这里更适合:
namespace X { void f(); }
另一个重要的事情是使用声明和指令:
namespace X { void f(); void g(); } void h() { using X::f; f(); // f() Now visible in current scope using namespace X; f(); g(); // both visible }
对于类类,根本就没有允许这样的机制.
什么类类型给你命名空间是你可以有多个不同状态的实例 – 如果你需要使用类类型.
原文地址:https://www.jb51.cc/c/113012.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。