C++抽象數據類型,如何抽象

 

C++是個多範式的語言,所以C++難學,所以C++強大,可比起java,C#,用C++來做軟件開發,開發週期要長很多。

爲什麼呢?這是因爲C++的自由度高,換句話說自由度越高地語言,開發軟件的週期越長,這是有一定道理的

自由度過高就不容易掌控,java和C#它們的庫很強大,這在一定程度上就限制了自由度,相當於提供了一套模式,方法,開發人員不需要去爲實現這些東西而操心

然而C++程序員卻需要爲這些費勁心力,這體現在實現細節上。

本文要說的是抽象數據類型,抽象數據類型 ADT 

一種重要的數據類型.它是由一組對象和一組在這些對象上的操作所組成,利用數據抽象機制把一個數據類型的表示和操作彙集起來,封裝在一起,定義成一個新的數據類型,這種新的數據類型統稱爲抽象數據類型

這是工具書上給出的定義。

首先是一種類型

其次是對象以及操作這些對象的集合

C++中得類就是對數據和操作的封裝,也就是所謂的抽象數據類型

那麼如何去定義一個抽象數據類型呢?這想必是所有開發者所苦惱的問題,也同樣是本人苦惱的問題。

這裏來談談本人對於這個問題的理解!

抽象這個詞在國語中得解釋是:概括,大概。比如說讀完一本書之後,大概描述一下書中的主體內容思想。這稱之爲抽象。抽象就是抓住本質,根本,同樣地,不變的等等

我們把同類事物的根本的,本質的,相同的,不變的概括出來就叫抽象,C++的抽象也同樣是這樣。

那麼也就是將一類事物相同的屬性,行爲概括出來,然後封裝在一起形成的一個類,就是所謂的抽象數據類型。

上面解釋了抽象和C++抽象的關係,下面就來探討下定義一個抽象數據類型的依據。

抽象數據類型並不是憑空想出來的,就算能想出來,恐怕也不盡人意,定義一個抽象數據類型的依據是:它能做什麼?

做軟件開發,都會先進行需求分析,然後系統設計,劃分功能模塊 ==

如何去完成一個模塊?當然可以更細分一下,每個模塊所要實現的功能有哪些。

這個時候問題就來了,如何去實現這些功能呢?

好,這就回到了上面提出的問題:定義一個抽象數據類型的依據

依據就是:能做什麼。

也就是爲了完成模塊所需要的功能所以才定義相應的抽象數據類型,具體就是根據模塊的功能需求來定義抽象數據類型,利用抽象數據類型的操作來實現模塊的功能。

總結:抽象數據類型是基於模塊要實現的功能,同時用來實現模塊的功能的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章