为什么要在命名空间中使用类
why to use classes inside namespace
我想知道在命名空间中写入类名的实际原因。他们解决什么目的?他们是包括类还是做其他事情?任何帮助将不胜感激。
namespace ns3 {
class Channel;
class SpectrumChannel;
class MyMod; ;
class NewModule : public NetDevice
{
public:
// methods and data
}
最好
将类放入命名空间中,以避免与您可能使用的其他代码(库)发生名称冲突(也会在项目后面使用)。当使用Vector
、Logger
等常用名称作为类名时,很容易将它们也用于您要使用的其他代码中。当您将类放入(经过深思熟虑的)命名空间时,这种名称冲突的可能性将降至最低。
前向声明是一个不同的(独立)主题。在命名空间中定义类时,它们的前向声明也必须在该命名空间内完成。
相关文章:
- 为什么 gcc 无法从其前向声明中检测到友元类命名空间?
- 为什么 Clang 在命名空间'std'中没有名为 'copy' 的成员给出错误
- 为什么 std::variant 找不到运算符<() 当与比较类不在同一命名空间中时
- 为什么不允许在全局命名空间处阻止范围?
- 为什么在这种特殊情况下不需要将 std::hash() 的专用化注入到 std 命名空间中?
- 为什么找不到使用命名空间中定义的类型实例化的 std::weak_ptr 的重载运算符==?
- 为什么在全局范围以及命名空间std中定义了size_t
- 为什么我在单独的命名空间中转发到 std::make_pair 模棱两可
- 为什么主可执行文件和 dlopen 加载的共享库共享命名空间静态变量的一个副本?
- 为什么类型特征不适用于命名空间范围内的类型?
- 为什么我不能在标头中只定义一个非常量 gloabal 变量?如果我使用命名空间,为什么我必须声明它"extern"?
- 为什么命名空间中的函数看不到全局定义的运算符<<?
- 为什么我应该使用extern关键字来声明命名空间范围中的变量
- 当类方法不进行时,为什么从标头文件中的独立方法需要为命名空间资格
- 为什么命名空间内的自由功能模棱两可
- 为什么我得到这个不是类或命名空间错误的'enum'?
- C 为什么在类中可以使用循环依赖性,而不是命名空间或全局范围
- 为什么我的项目在命名空间 std 中找不到"function"?
- 为什么使用范围解析运算符会更改调用全局命名空间中的哪个重载模板?
- 为什么我不能将该操作员的过载与结构相同的命名空间