数据抽象
结构式编程不能解决复杂的问题,对于数据类型来说,结构化编程提供了一个类型管理器接口,目的是构建内置数据类型,与用户的使用独立开来,但结构化编程建立的struct结构表示很大程度上依赖于内部的表示,一旦用户想要改变数据类型,就不得不探索内部函数结构,无法实现完全的独立。
数据抽象C++允许用户定义与内置类型几乎相同的数据类型,这样的类型被称为用户定义类型或抽象类型,在具体类型中,用户可以定义加减乘除操作,类似于int型和char型,可以定义rational型和complex型。在抽象类型中,将类型表示抽象化,相关的方法定义用虚函数进行,每一个用户定义的对象都有一个指针指向虚函数列表,当调用相关抽象类型时,直接将虚函数对应到相应虚函数列表的索引中,无需在意具体的数据类型。这样的操作,将用户和类型定义完全独立开来,产生的额外所需内存空间为每个对象的虚函数列表指针和虚函数列表所占用的空间。
网友评论