C++ 命名空间和类的区别

C++ 命名空间和类的区别

是数据类型。它们是结构的扩展概念,可以包含数据成员,但也可以包含函数作为成员,而 命名空间 仅是一种将项目抽象地组合在一起的方式。命名空间不能被创建成对象;可将其视为一种命名约定。它用作附加信息来区分在不同库中可用的同名函数、类、变量等等。从本质上讲,命名空间定义了一个作用域。以下是一些证明这一点的要点:1. 命名空间是将标识符分组的一种方式,以避免冲突。使用类意味着可以创建该类的实例,但对于命名空间不成立。 2. 您可以在命名空间中使用 using-declarations ,而在类中则不可能,除非从类派生。 3. 您可以重新打开命名空间并在跨转换单元添加内容。使用类无法实现这一点。例如:

namespace A {
int f1();
}
 
namespace A {
int f2();
}  

是合法的,但是:

class A {
    int f1();
};
 
class A { // 非法
    int f2();
};

您可以有未命名的命名空间,但是不能有未命名的类。例如:

namespace { // 可行
 
// 一些代码....
}
 
class { // 非法
}  

如果名称的长度使代码难以阅读或在头文件中使用指令时输入冗长,可以创建名称空间别名,用作实际名称的缩写。例如:

# include <iostream>
 
namespace foo {
    namespace bar {
        namespace baz {
            int qux = 42;
        }
    }
}
 
namespace fbz = foo::bar::baz;
 
int main()
{
    std::cout << fbz::qux << '\n';
}  

输出:

 42 

在类的情况下,我们必须使用 typedef。

class Car {
public:
    typedef std::vector<Wheel> WheelCollection;
    WheelCollection wheels;
};  

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程