Tim*_*ech 36 c++ struct namespaces class
我正在寻找命名空间,我并没有真正看到这些和类之间的区别.我在教自己c ++我已经在网上买了几本书,所以我知道我没有最有效的学习.无论如何,有人可以告诉我两者之间的区别以及在类上使用名称空间的最佳时间.另外,在我正在阅读的书中,我看不到结构.
这是格式吗?
struct go
{
goNow(){ cout << "go Now"};
}
Run Code Online (Sandbox Code Playgroud)
提前感谢你的帮助.
Cog*_*eel 68
类和结构定义类型.您可以创建一个类型的对象.命名空间只是声明一个范围,其中可以存在其他类型,函数,对象或命名空间.您无法创建类型的对象std
(除非您创建了一个名为的类型std
,这将隐藏std
命名空间).
当你在struct/class(一个方法)中定义一个函数时,你会说"这个函数是对相关数据的基本操作".在命名空间内定义函数时,您会说"此函数在逻辑上与命名空间中的其他函数,类型和对象相关"
编辑
值得指出的是,"一切都是对象"Java和C#等语言经常使用类,就像它们是名称空间一样,因为它们不允许"自由"功能.这可能是混乱的来源.如果你有一个只包含静态成员的其他语言的类,你可能希望在C++版本中使用命名空间和自由函数.
Abh*_*hay 26
您可以在网上搜索差异,我相信您会发现很多; 但以下是重要的恕我直言: -
命名空间定义了一个新的范围,并且命名空间的成员被称为具有命名空间范围.它们提供了一种避免名称冲突(变量,类型,类或函数)的方法,而不会给处理嵌套类带来不便.
bta*_*bta 11
甲类是一种数据类型.如果您有一个名为的类Foo
,则可以创建类的对象Foo
并以多种方式使用它们.
一个命名空间是简单的分组物品放在一起的一种抽象的方式.通常,您的程序中不能有两个函数bar()
.如果将它们放在单独的命名空间中,那么它们可以共存(例如,as A::bar()
和B::bar()
).命名空间不能创建为对象; 将其视为命名惯例.
如果要编写要与可以定义并用作变量的对象关联的代码,请编写一个类.如果您正在编写API或库,并且想要包装所有函数和常量,以便它们的名称不会与用户可能编写的任何内容冲突,请使用命名空间.
小智 8
命名空间是一种对标识符进行分组的方法,以便它们不会发生冲突.
类是对可以实例化(通常)并且封装功能性和状态的对象的定义.
命名空间和类完全不同,并且用于不同的目的.它们有一些句法相似性.
结构是类,具有不同的默认访问说明符(对于struct为public,对于class为private) - 在所有其他方面它们是相同的.
小智 7
一个主要的区别是命名空间可以重新打开,但类不能是:
namespace A {
int f1();
}
namespace A {
int f2();
}
Run Code Online (Sandbox Code Playgroud)
是合法的,但是:
class A {
int f1();
};
class A {
int f2();
};
Run Code Online (Sandbox Code Playgroud)
不是