关于c ++:那么现在struct可以拥有虚函数并支持继承吗?

So now struct can have virtual function and support inheritance ? What difference with classes then ? What the true purpose of information hiding?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What are the differences between struct and class in C++

www.cplusplus.com http:/ / / / / /小时类型的参考信息/ _型

我想我的"教师"没有告诉我很多关于结构和类之间的差异在C + +。

我读一些其他的问题,关于在继承,struct默认是public。我想没有constructors结构/破坏者。

其他的差异是什么?他们物太多?

当我们在保护私人/属性/方法,他们不可以在运行时编译,只因为它是在编译的时间和报告的错误,对吗?然后比较这些特征与类,什么是"信息隐藏"真的给友好的程序员吗?所以当有人在这里是它的重用的类,这一类的人不会因为滥用私人/保值的东西要报告由编译器?

我仍然挣扎在信息隐藏真实的目的,它仍然在我的头,我的声音,它带来了更多的安全,在样点,不安全breaches的意思,但我真的很困惑的问题是设计的目标搜索中的语言……(我不打算在任何C + +),我只明白,在什么情况下这个特征可以是或不是,如果不,这不是一个问题,但我只是想知道……)。


远的是编译器之间的差异而言,没有比其他structclass默认可访问性。他们只是会是两个不同的关键字相关的东西。操作系统中,可以有一个基类的构造函数,destructors,虚拟函数,一切。

在远方的程序员而言,这是普通的会议使用的是与非struct类(这是这些东西,POD)的活性,或去,甚至还和使用的struct仅适用在用户定义的类和成员函数的所有,只有公共数据成员。这个人有时混乱的会议上,因为它是容易被认为是一类surprisingly(当它是不是,但至少他们正在努力。

在C + +,至少,信息隐藏的安全是绝对没有用的。将你的心出来。它不提供任何的安全,除了在一般的方式,任何好的编码实践是使代码更容易了解到那是理智的,和因此使fewer程序员的错误。

信息隐藏的目的是允许你改变实施后,删除或重命名成员可能对私人的,安全的知识,你是没一个用户类的类,和朋友到外面,是一referring到他们。显然,这是有用的,但显然是不可能的,更重要的是它的和有用的,因为它使你的代码中的类所显示的界面是一个客户,你要使用的,这是和你的类的用户可以rightfully期望的工作。你可以实现一个与文件相同的原则,但在实践中这是很好的编译器来执行规则。

这并不是因为任何的"安全"了它的在线编译系统可能工作在公共/私人的保护。如果你的类的用户说,他们再利用一些怪诞的黑客,他们的代码,他们deserve停止工作,当你改变你的compiling /类,如果他们给你,你可以吃到complain嘲笑他们。