C++ 我们可以在类型上定义结构吗?
所以我在看关于结构和类差异的问题。。。我不明白一件事——我们能在类型上定义一个结构吗?就像喝醉了的课。。。如果是,请提供一些样品 如果你是说,你能像使用类一样使用结构吗?答案是肯定的。在C++中,唯一的区别是可见性的默认值。类的成员默认为private;结构的成员默认为public。如果创建一个类并将所有成员公开,那么它与struct几乎相同。我知道编译器根据结构是否可以从类继承而有所不同,反之亦然C++ 我们可以在类型上定义结构吗?,c++,class,types,struct,C++,Class,Types,Struct,所以我在看关于结构和类差异的问题。。。我不明白一件事——我们能在类型上定义一个结构吗?就像喝醉了的课。。。如果是,请提供一些样品 如果你是说,你能像使用类一样使用结构吗?答案是肯定的。在C++中,唯一的区别是可见性的默认值。类的成员默认为private;结构的成员默认为public。如果创建一个类并将所有成员公开,那么它与struct几乎相同。我知道编译器根据结构是否可以从类继承而有所不同,反之亦然 坦白地说,我认为C++中的结构主要是与C的向上兼容,或者换句话说,类的存在只是因为这是同一个概念
坦白地说,我认为C++中的结构主要是与C的向上兼容,或者换句话说,类的存在只是因为这是同一个概念的新名称。你能澄清你所说的打字类是什么意思吗?您可能指的是模板吗?定义类型上的结构是什么意思?如果你能举一个“tiped class”的例子,答案可能会更简单。另外,我没有投反对票。至于“struc vs class difference”,最简洁的定义可能来自Stroustrup先生自己:
struct-默认情况下成员为public的class
。Re的可能重复:“我知道编译器根据结构是否可以从类继承而有所不同,反之亦然”-他们当然不应该这样做。除了默认的可访问性,类和结构是一样的,可以互换使用。但是大多数程序员仍然使用struct
作为POD,使用class
作为OO/数据隐藏的东西。与编译器的POV相比差异很小,但对代码的人类读者来说是一个强烈的提示;关键字struct
和关键字class
都定义了类类型。实际上,程序员根据本地编码惯例使用一个或另一个关键字。@larsmans:好的。我倾向于在C++程序中使用类,但从“自我文档”的角度来看,这不是一个坏主意。而是在同一类命名约定中,即类名以大写字母开头,实例名以小写字母开头。当然,它对编译器没有影响,但它提高了可读性。