【发布时间】:2010-12-27 14:38:58
【问题描述】:
在处理面向对象编程时,类和结构之间的真正区别是什么。这个问题在我的 SE 面试中被问了很多次。
有人说只有一个区别: 结构成员默认是公共的,类成员默认是私有的。
有人说有很多不同。
看了很多文章和论坛,我有以下不同:
类默认拥有私有成员。结构默认拥有公共成员。
结构是值类型。 类是引用类型。
结构通过堆栈存储在内存中。 通过堆存储在内存中的类。
结构不支持继承。 类支持继承。
构造函数以不同的方式工作。
‘new’操作符以不同的方式工作。
为结构分配内存非常快,因为这发生在内联或堆栈上。
您对我上面的列表有何看法,或者您有不同的看法。谢谢
【问题讨论】:
-
类和结构在不同的语言中有不同的含义。您需要告诉我们您所指的语言。
-
我相信你的意思是在 C++ 中,但即使在那里你也有一些错误。
-
我相信他的意思是C#,否则除了第一个以外的所有点都是错误的。
-
如果取决于语言,我想了解 PHP/Java。我对这些语言的面试很感兴趣。
-
AFAIR,没有,因为 Java 和 PHP 都没有结构;)
标签: java php oop class structure