当前位置:天才代写 > tutorial > C语言/C++ 教程 > C++必知必会(一) 数据抽象

C++必知必会(一) 数据抽象

2017-11-03 08:00 星期五 所属: C语言/C++ 教程 浏览:361

“范例”是一组操纵,“抽象数据范例”则是一组具有某种实现的操纵。当我们在某个问题的规模中识别工具时,首先思量的问题是“可以用这个工具来做什么”而不是“这个工具是如何实现的”。因此,假如某个问题的自然描写涉及到雇员、条约和薪水记录,那么用来办理该问题的编程语言就应该包括Employee、Contract和PayrollRecord范例。这样就答允在问题规模息争决方案规模之间举办双向、高效地转换,用这种方法编写的软件才气只管制止发生“转换噪音”,从而到达更简捷、更精确。

在C++这样的通用编程语言中,不会有像Employee这样特定于应用措施的范例,我们有更好的对象:C++为建设巨大的抽象数据范例提供了便利。从本质上说,抽象数据范例的用途在于将编程语言扩展到一个特定的问题规模。

C++中不存在针对抽象数据范例设计的公认方案,这方面的编程依然需要灵感和艺术才气,不外很多乐成的途径都遵循下面这组雷同的步调:

为范例选择一个描写性的名字。假如难觉得这个范例定名,那就说明你还不知道你想要实现什么,你需要多开动头脑。一个抽象数据范例应该暗示一个纯真的、有着精采界说的观念,并且为该观念所取的名字应该是显而易见的。

列出范例所能执行的操纵。界说一个抽象数据范例的依据是能用它做什么。不要忘了初始化(结构函数)、清理(析构函数)、复制(复制操纵)以及转换(不带explicit要害字修饰的的单参数结构函数和转换操纵符)。要制止在实现时简朴地为数据成员提供一串get/set操纵,那不叫数据抽象,而是懒惰且缺乏想像力的表示。

为范例设计接口。正如Scott Meyers汇报我们的那样,一个范例应该做到“易于正确利用、难以错误利用”。既然抽象数据范例是对语言的扩展,那么务须要正确地举办语言设计。你要为范例的用户设身处地地想一想,而且编写一些利用范例接口的代码。精采的接口设计除需要思量技能的威力外,心理学和感情方面的问题同样需要加以思量。

实现范例。不要让实现影响范例的接口。要实现范例的接口所理睬的约定。记着,在大大都环境下,对抽象数据范例的实现的窜改,远比对其接口的窜改来得频繁得多。

 

    关键字:

天才代写-代写联系方式