數(shù)據(jù)抽象

數(shù)據(jù)抽象

? ? ? ? 結(jié)構(gòu)式編程不能解決復(fù)雜的問(wèn)題,對(duì)于數(shù)據(jù)類型來(lái)說(shuō),結(jié)構(gòu)化編程提供了一個(gè)類型管理器接口,目的是構(gòu)建內(nèi)置數(shù)據(jù)類型,與用戶的使用獨(dú)立開來(lái),但結(jié)構(gòu)化編程建立的struct結(jié)構(gòu)表示很大程度上依賴于內(nèi)部的表示,一旦用戶想要改變數(shù)據(jù)類型,就不得不探索內(nèi)部函數(shù)結(jié)構(gòu),無(wú)法實(shí)現(xiàn)完全的獨(dú)立。

圖片發(fā)自簡(jiǎn)書App


? ? ? C++允許用戶定義與內(nèi)置類型幾乎相同的數(shù)據(jù)類型,這樣的類型被稱為用戶定義類型或抽象類型,在具體類型中,用戶可以定義加減乘除操作,類似于int型和char型,可以定義rational型和complex型。在抽象類型中,將類型表示抽象化,相關(guān)的方法定義用虛函數(shù)進(jìn)行,每一個(gè)用戶定義的對(duì)象都有一個(gè)指針指向虛函數(shù)列表,當(dāng)調(diào)用相關(guān)抽象類型時(shí),直接將虛函數(shù)對(duì)應(yīng)到相應(yīng)虛函數(shù)列表的索引中,無(wú)需在意具體的數(shù)據(jù)類型。這樣的操作,將用戶和類型定義完全獨(dú)立開來(lái),產(chǎn)生的額外所需內(nèi)存空間為每個(gè)對(duì)象的虛函數(shù)列表指針和虛函數(shù)列表所占用的空間。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容