嗨,我是C++的新手,阅读C++ concepts...............and,我无法理解隐藏在实际或实时使用中的数据。
问:据我所知,数据隐藏将在C++中实现,以隐藏在程序中幕后使用的实际数据--假设在类中声明某些数据为专用。当C++程序被制作并编译为某个游戏的示例时,可执行文件(.exe或nay在unix中的其他可执行文件)将提供给用户?
我在这里搞不懂什么?我的数据藏在哪里??当用户使用可执行文件( .exe )时,由于我的意见,用户无法读取或打开.exe来查看文件的内容。即使我声明我的所有变量public...still,数据是隐藏的,因为用户只有.exe文件,用户不能读取或操作该文件?
请推荐几个人?在我想错的地方给出一些反馈
发布于 2011-04-06 08:02:57
数据隐藏是一种控制应用程序的一个部分中的代码的依赖性的方法,它是控制应用程序的另一部分代码中的代码的一种方式。也就是说,当一段代码发生变化时,一个或多个代码是否也需要更新呢?尽可能地,您希望对此的答案是“不”,因为否则,您对程序所做的每一个小小的更改都会在程序进入稳定状态之前启动大量相应的更改,程序将在那里再次正常运行。为了阻止程序员将代码任意地依赖于类实现的任何方面,并鼓励他们只依赖于类的对象为客户端执行其预期功能所必需的可控部分,您可以指定客户端允许使用的数据和/或函数:这是“公共”和/或“受保护”接口。您想要在不需要关注的客户端代码的情况下进行更改的其他事情应该是private。
--这都是关于开发的,与程序在运行时处理的数据无关,也与保护程序逻辑/数据不被最终用户窥探有关。
例如,taskinoor恰当地引用了一个Date类,该类确保所存储的日期保持有效,这样客户端代码就不能直接将日期设置为"31 Feb“或其他一些无意义的值。此外,在不影响客户端的情况下,可以将数据布局从三个数字存储日、月和年更改为自某个参考日起的一个数字存储日,而不影响客户端(产生不同的性能配置文件-通过日期的相对移动速度更快,但向/从D/M/Y值转换的速度更慢)。
发布于 2011-04-06 06:50:16
数据隐藏是指当某人使用链接/使用您的代码的代码时隐藏数据。它被用作一种安全机制,以确保对象总是被正确构造。它也被用作用户处理接口的抽象方法,但底层实现可以“随意”更改,而不必重写任何使用该代码的代码(例如,重命名字段名或完全删除它)。
示例:
日期类可以保存月份、年份和日期。根据月份的不同,一个月中有不同的有效日期(一些人30天,另一些人31天,2月28/29天)。此外,只有一定数量的有效月份(可以处理使用枚举)。如果允许用户直接修改“月中日”字段,则无法确保对象始终保存有效数据。数据隐藏用于防止用户直接访问该数据,用户使用访问器方法获取/修改该字段。这些方法可以有确保只输入有效数据的代码。
现在,如果在稍后的日期,它决定将日期表示为从2010年1月1日开始的天数更好。用户仍然可以使用前面定义的访问器方法,这将适当地转换输入/输出。
发布于 2011-04-06 06:52:08
什么是数据封装?
数据封装是将数据和对单个单元中的数据进行操作的函数绑定在一起。
如何实现数据封装?
通过创建一个类型。例句:阶级、结构等。
什么是数据抽象?
数据抽象正在向外部世界隐藏您的类型的复杂性。
如何实现数据抽象?
通过使用访问说明符。例:公共的,私人的,受保护的。
访问说明符对谁隐藏数据?
访问说明符向类/结构对象的用户隐藏数据(不向他们提供对数据的直接访问)。
将游戏中的类看作一个单独的单元,其他功能(源代码)使用它来执行某些功能。通常,类具有对状态执行操作的状态和方法。访问说明符将类的成员隐藏在其他源代码(可能是类或结构)中。其他代码可以创建类的对象,并可以通过类公开的公共方法修改类数据成员中的状态存储。因此,Access说明符提供了一种访问类成员的有组织的方法。
https://stackoverflow.com/questions/5562356
复制相似问题