为什么结构是轻量级的,而Class在C ++中是重量级的

时间:2012-08-28 15:40:27

标签: c++

请告诉我区别以及为什么??

3 个答案:

答案 0 :(得分:6)

  

为什么结构是轻量级的,C ++中的Class是Heavyweight

谁说的?这完全是一个不正确的陈述。

struct和class之间的区别在于struct默认可访问性是public,而对于class,它是private。否则,structclass相同。

答案 1 :(得分:5)

因为程序员的大脑是如何运作的。

struct来自C,它最初没有C ++带来的方法,访问级别和其他class特定的东西。它在C ++中也有默认的public访问级别,使其更像是某些成员的容器,而不是一个完整的OOP对象。

另一方面,

class是由C ++引入的,并且默认提供上述所有(和private访问级别)。

当然,两者之间的C ++没有区别(默认访问级别除外),所以它主要是一种轻量级和重量级的 meta 方式。当你说class时,你固有地想到了方法,私有成员,多态和继承。当您说struct时,您认为它有2 int个成员&就是这样:))

答案 2 :(得分:0)

我不确定你的问题。也许你在问“虚拟”的事情。在C ++中的类/结构中有可能有虚拟表。你不能忘记它们,它会造成很多问题。虚拟桌会花费你额外的内存,所以也许这就是为什么它们“起伏”......

http://www.programmerinterview.com/index.php/c-cplusplus/how-vtables-work/

还要记住,C ++中的Struct和Class是相同的,期望struct默认具有公共字段和函数。