Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我们可以在类型上定义结构吗?_C++_Class_Types_Struct - Fatal编程技术网

C++ 我们可以在类型上定义结构吗?

C++ 我们可以在类型上定义结构吗?,c++,class,types,struct,C++,Class,Types,Struct,所以我在看关于结构和类差异的问题。。。我不明白一件事——我们能在类型上定义一个结构吗?就像喝醉了的课。。。如果是,请提供一些样品 如果你是说,你能像使用类一样使用结构吗?答案是肯定的。在C++中,唯一的区别是可见性的默认值。类的成员默认为private;结构的成员默认为public。如果创建一个类并将所有成员公开,那么它与struct几乎相同。我知道编译器根据结构是否可以从类继承而有所不同,反之亦然 坦白地说,我认为C++中的结构主要是与C的向上兼容,或者换句话说,类的存在只是因为这是同一个概念

所以我在看关于结构和类差异的问题。。。我不明白一件事——我们能在类型上定义一个结构吗?就像喝醉了的课。。。如果是,请提供一些样品

如果你是说,你能像使用类一样使用结构吗?答案是肯定的。在C++中,唯一的区别是可见性的默认值。类的成员默认为private;结构的成员默认为public。如果创建一个类并将所有成员公开,那么它与struct几乎相同。我知道编译器根据结构是否可以从类继承而有所不同,反之亦然


坦白地说,我认为C++中的结构主要是与C的向上兼容,或者换句话说,类的存在只是因为这是同一个概念的新名称。你能澄清你所说的打字类是什么意思吗?您可能指的是模板吗?定义类型上的结构是什么意思?如果你能举一个“tiped class”的例子,答案可能会更简单。另外,我没有投反对票。至于“struc vs class difference”,最简洁的定义可能来自Stroustrup先生自己:

struct-默认情况下成员为public的class
。Re的可能重复:“我知道编译器根据结构是否可以从类继承而有所不同,反之亦然”-他们当然不应该这样做。除了默认的可访问性,类和结构是一样的,可以互换使用。但是大多数程序员仍然使用
struct
作为POD,使用
class
作为OO/数据隐藏的东西。与编译器的POV相比差异很小,但对代码的人类读者来说是一个强烈的提示;关键字
struct
和关键字
class
都定义了类类型。实际上,程序员根据本地编码惯例使用一个或另一个关键字。@larsmans:好的。我倾向于在C++程序中使用类,但从“自我文档”的角度来看,这不是一个坏主意。而是在同一类命名约定中,即类名以大写字母开头,实例名以小写字母开头。当然,它对编译器没有影响,但它提高了可读性。