【发布时间】:2013-07-26 05:48:38
【问题描述】:
我在工作面试中被问到一个问题:
“struct和class有什么区别?”
我简单地回答:
“struct 的成员只能是公共的,而 class 的成员可以被声明为公共的或私有的。”
但现在我对我的答案有点困惑。我一直在网上寻找 strcut 和 class 之间的区别,但在任何地方都看不到这种区别。我对雇主的回答不正确吗?
如果是的话,除了这个之外,struct 和 class 之间实际上有什么区别:
类的成员默认是私有的,而结构的成员默认是公有的。
【问题讨论】:
-
在 C++ 中,除了您已经提到的那个之外,没有任何区别。此外,struct 的成员也可以是私有的。
-
在 C++ 中,它们是一回事。唯一的区别是你说的那个。
-
从 C++ 的角度来看,唯一的区别是,默认情况下,结构成员是“公共的”,而类成员是“私有的”。 C只有结构;没有课。在 C 中,结构仅包含数据。在 C++ 中,还为“this”指针分配了空间。
-
唯一的部分是错误的。结构成员不仅是公开的(反之亦然)。但除了在 C++ 中你是 100% 正确的。但是,在 C 和 C# 中,您错了。 C# 将结构视为不可为空的对象(还有一些其他更改,但这是主要更改)。