2011-05-09 70 views
0

所以我正在寻找关于结构与类差异的问题......而我没有得到一件事 - 我们可以定义一个类型结构吗?像tiped课...如果是的话,请提供一些样品。我们可以在类型上定义一个结构吗?

+1

就我所知,类和结构*都是*类型...你能澄清* typed class *的含义吗?你会不会提到模板? – 2011-05-09 14:02:28

+1

“定义结构类型”是什么意思?如果你可以举一个例子,“倾斜课堂”可能更容易回答。 PS。我没有投票。 – juanchopanza 2011-05-09 14:04:16

+3

至于“struc vs class difference”,可能最简洁的定义来自Stroustrup先生自己:“结构 - 类成员默认为公共成员”。 – Damon 2011-05-09 14:09:07

回答

2

如果你的意思是,你可以像使用类一样使用结构吗?答案是肯定的。在C++中唯一的区别是可见性的默认值。一个班级的成员默认为私人;结构的成员默认为公共。如果你创建一个类并且让所有成员都公开,那么它和结构几乎一样。我知道编译器会因结构是否可以从类继承而异,反之亦然。

坦率地说,我认为struct存在于C++中,主要是为了向上兼容C,或者换句话说,类只存在,因为这是同一个想法的新名称。

+0

回复:“我知道编译器会因结构是否可以继承上课,反之亦然“ - 他们当然不应该。除了默认的可访问性,类和结构是相同的,可以互换使用。 – 2011-05-09 14:11:54

+3

但大多数程序员仍然使用'struct'作为POD,'class'作为OO /数据隐藏的东西。与编译器的POV差别不大,但对代码的读者来说是一个强烈的暗示。 – 2011-05-09 14:14:28

+1

从技术上讲,struct不存在;关键字'struct'和关键字'class'都定义了一个类的类型。实际上,程序员根据本地编码约定使用一个或另一个关键字。 – 2011-05-09 14:26:48

相关问题