请告诉我区别以及为什么?
3 回答
为什么结构是轻量级的,而类在 C++ 中是重量级的
谁说的?这是完全错误的说法。
struct 和 class 之间的区别在于,默认可访问性为struct
is public
,而 for class
it 为private
。否则,struct
与 相同class
。
因为程序员的大脑是如何工作的。
struct
来自 C,它最初没有class
C++ 带来的方法、访问级别和其他特定的东西。它在 C++ 中还具有默认public
访问级别,这使其更像是某些成员的容器,而不是完整的 OOP 对象。
class
另一方面,由 C++ 引入,并提供上述所有内容(private
默认情况下是访问级别)。
当然,两者在 C++ 中没有区别(除了默认访问级别),因此它主要是一种表示轻量级和重量级的元方式。当您说 时class
,您天生就会想到方法、私有成员、多态性和继承。当你说struct
你认为它有 2 int
s 作为成员时,就是这样:)
我不确定你的问题。也许你在问“虚拟”的东西。在 C++ 中的类/结构中可能有虚拟表。你不能 memset 他们,这会导致很多问题。虚拟表会花费您额外的内存,所以也许这就是它们“沉重”的原因...
http://www.programmerinterview.com/index.php/c-cplusplus/how-vtables-work/
还要记住,C++ 中的 Struct 和 Class 是相同的,但默认情况下 struct 具有公共字段和函数。