c++ - 类和命名空间的区别?

标签 c++ class struct namespaces

我正在查看 namespace ,但我并没有真正看到这些名称和类之间的区别。 我正在自学 C++ 我已经在网上找到了几本书,所以我知道我的学习效率不是最高的。无论如何,有人可以告诉我两者之间的区别,以及在类里面使用命名空间的最佳时间是什么时候?另外,我在正在阅读的书中没有看到太多关于结构的内容。

这是格式吗?

struct go
{

  goNow(){ cout << "go Now"};

}

提前感谢您的帮助。

最佳答案

类和结构定义类型。您可以创建一个类型的对象。命名空间只是声明一个范围,在该范围内可以存在其他类型、函数、对象或命名空间。您不能创建 std 类型的对象(当然,除非您创建了一个名为 std 的类型,它会隐藏 std 命名空间)。

当您在结构/类(方法)中定义函数时,您是在说“此函数是对关联数据的基本操作”。当你在命名空间中定义一个函数时,你是在说“这个函数在逻辑上与命名空间中的其他函数、类型和对象相关”

编辑

可能值得指出的是,像 Java 和 C# 这样的“一切都是对象”语言经常使用类,就好像它们是命名空间一样,因为它们不允许“自由”函数。这可能就是困惑的来源。如果你有一个其他语言的类只包含静态成员,你会希望在 C++ 版本中使用命名空间和自由函数。

关于c++ - 类和命名空间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3188156/

相关文章:

无法传递 `#define` 作为函数参数,但可以传递 `#define` 的数组[n]

c++ - SFML 文本未绘制在窗口上

c++ - 包含许多 "if"的关键循环,其输出为常量 : How to save on condition tests?

swift - 快速访问另一个类的变量

php - PHP 中的可变变量类扩展——可能吗?

c - 释放结构数组

c++ - 100% 的数组在函数中正确,75% 的数组在 CALLING 函数中正确 - C

c++ - 以非零状态 (repl.it) C++ 退出?

c++ - Linux、C++、dup(socket) 是否会从另一个非 fork 进程工作(如果不是如何启用它)?

c# - 有条件地创建不同类的对象