请告诉我区别以及为什么??
答案 0 :(得分:6)
为什么结构是轻量级的,C ++中的Class是Heavyweight
谁说的?这完全是一个不正确的陈述。
struct和class之间的区别在于struct
的默认可访问性是public
,而对于class
,它是private
。否则,struct
与class
相同。
答案 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默认具有公共字段和函数。