名称空间和类之间的区别

班级 是数据类型。它们是一个扩展的概念 结构 ,它们可以包含数据成员,但也可以包含作为成员的函数,而 名称空间 这只是一种将项目组合在一起的抽象方式。A. 名称空间 不能创建为对象;把它更多地看作一种命名约定。它作为附加信息用于区分不同库中具有相同名称的类似函数、类、变量等。本质上,名称空间定义了一个范围。以下是一些理由:

null

1.名称空间是对标识符进行分组的一种方式,这样它们就不会冲突。使用类意味着可以创建该类的实例,而不是使用名称空间。

2.可以将声明与名称空间一起使用,而这在类中是不可能的,除非从类派生。

3.可以重新打开名称空间,并跨翻译单元添加内容。你不能在课堂上这样做。例如:-

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


是合法的,但是:

class A {
int f1();
};
class A { // illegal
int f2();
};


事实并非如此。

4.可以有未命名的名称空间,但不能有未命名的类。例如:

namespace { // fine
// some code....
}
class { // illegal
}


5.如果名称的长度使代码难以阅读,或者在不能使用using指令的头文件中键入代码很麻烦,我们可以创建一个名称空间别名,作为实际名称的缩写。例如:

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


输出:

 42 

在课堂上,我们必须使用typedef。

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


© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享