-4

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

4

3 回答 3

6

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

谁说的?这是完全错误的说法。

struct 和 class 之间的区别在于,默认可访问性为structis public,而 for classit 为private。否则,struct与 相同class

于 2012-08-28T15:41:17.743 回答
5

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

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

class另一方面,由 C++ 引入,并提供上述所有内容(private默认情况下是访问级别)。

当然,两者在 C++ 中没有区别(除了默认访问级别),因此它主要是一种表示轻量级和重量级的元方式。当您说 时class,您天生就会想到方法、私有成员、多态性和继承。当你说struct你认为它有 2 ints 作为成员时,就是这样:)

于 2012-08-28T15:42:41.393 回答
0

我不确定你的问题。也许你在问“虚拟”的东西。在 C++ 中的类/结构中可能有虚拟表。你不能 memset 他们,这会导致很多问题。虚拟表会花费您额外的内存,所以也许这就是它们“沉重”的原因...

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

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

于 2012-08-28T15:46:03.877 回答