国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++ 語言類 (class) 和抽象數(shù)據(jù)類型 (abstract data type)

這篇具有很好參考價值的文章主要介紹了C++ 語言類 (class) 和抽象數(shù)據(jù)類型 (abstract data type)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

C++ 語言類 (class) 和抽象數(shù)據(jù)類型 (abstract data type)

在 C++ 語言中,我們使用類定義自己的數(shù)據(jù)類型。通過定義新的類型來反映待解決問題中的各種概念,從而使得程序更加簡潔旦易于修改。數(shù)據(jù)抽象能幫助我們將對象的具體實現(xiàn)與對象所能執(zhí)行的操作分離開來。

類的兩項基本能力:一是數(shù)據(jù)抽象,即定義數(shù)據(jù)成員和函數(shù)成員的能力;二是封裝, 即保護類的成員不被隨意訪問的能力。通過將類的實現(xiàn)細節(jié)設(shè)為 private,我們就能完成類的封裝。類可以將其他類或者函數(shù)設(shè)為友元,這樣它們就能訪問類的非公有成員了。

接口 (interface) 是類型提供的 (公有) 操作。通常情況下,接口不包含數(shù)據(jù)成員。

1. 抽象數(shù)據(jù)類型

抽象數(shù)據(jù)類型 (abstract data type) 是封裝 (隱藏) 了實現(xiàn)細節(jié)的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)抽象 (data abstraction) 著重關(guān)注類型接口的一種編程技術(shù)。數(shù)據(jù)抽象令程序員可以忽略類型的實現(xiàn)細節(jié),只關(guān)注類型執(zhí)行的操作即可。數(shù)據(jù)抽象是面向?qū)ο缶幊毯头盒途幊痰幕A(chǔ)。

類的基本思想是數(shù)據(jù)抽象 (data abstraction) 和封裝 (encapsulation)。數(shù)據(jù)抽象是一種依賴于接口 (interface) 和實現(xiàn) (implementation) 分離的編程技術(shù)。類的接口包括用戶所能執(zhí)行的操作:類的實現(xiàn)則包括類的數(shù)據(jù)成員、負責接口實現(xiàn)的函數(shù)體以及定義類所需的各種私有函數(shù)。封裝實現(xiàn)了類的接口和實現(xiàn)的分離。封裝后的類隱藏了它的實現(xiàn)細節(jié),類的用戶只能使用接口而無法訪問實現(xiàn)部分。

類要想實現(xiàn)數(shù)據(jù)抽象和封裝,需要首先定義一個抽象數(shù)據(jù)類型 (abstract data type)。在抽象數(shù)據(jù)類型中,由類的設(shè)計者負責考慮類的實現(xiàn)過程:使用該類的程序員則只需要抽象地思考類型做了什么,而無須了解類型的工作細節(jié)。

封裝 (encapsulation) 分離類的實現(xiàn)與接口,從而隱蔵了類的實現(xiàn)細節(jié)。在 C++ 語言中,通過把實現(xiàn)部分設(shè)為 private 完成封裝的任務(wù)。

2. 不同的編程角色

程序員們常把運行其程序的人稱作用戶 (user)。類的設(shè)計者也是為其用戶設(shè)計并實現(xiàn)一個類的人。類的用戶是程序員,而非應(yīng)用程序的最終使用者。

3. 類 (class)

類 (class) 是 C++ 提供的自定義數(shù)據(jù)類型的機制。類可以包含數(shù)據(jù)、函數(shù)和類型成員,一個類定義一種新的類型和一個新的作用域。

類可以定義一種特殊的成員函數(shù):構(gòu)造函數(shù),其作用是控制初始化對象的方式。構(gòu)造函數(shù)可以重載,構(gòu)造函數(shù)應(yīng)該使用構(gòu)造函數(shù)初始值列表來初始化所有數(shù)據(jù)成員。

類還能定義可變或者靜態(tài)成員。一個可變成員永遠都不會是 const,即使在 const 成員函數(shù)內(nèi)也能修改它的值:一個靜態(tài)成員可以是函數(shù)也可以是數(shù)據(jù),靜態(tài)成員存在于所有對象之外。

References

(美) Stanley B. Lippman, (美) Josée Lajoie, (美) Barbara E. Moo 著, 王剛, 楊巨峰 譯. C++ Primer 中文版[M]. 第 5 版. 電子工業(yè)出版社, 2013.
https://www.informit.com/store/c-plus-plus-primer-9780321714114文章來源地址http://www.zghlxwxcb.cn/news/detail-409086.html

到了這里,關(guān)于C++ 語言類 (class) 和抽象數(shù)據(jù)類型 (abstract data type)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • No converter for [class xxx] with preset Content-Type ‘multipart/form-data’

    org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class cn.guet.utils.Result] with preset Content-Type ‘multipart/form-data’ 當我將判斷文件是否存在邏輯,放在writeBytes中時,當判斷到文件不存在,拋出 BusinessException 異常時,后臺報錯。 因為此時的 response.setContentType(\\\"mult

    2024年02月15日
    瀏覽(20)
  • 【C++數(shù)據(jù)結(jié)構(gòu) | 圖速通】10分鐘掌握鄰接矩陣 & 鄰接表 | 快速掌握圖論基礎(chǔ) | 快速上手抽象數(shù)據(jù)類型圖

    【C++數(shù)據(jù)結(jié)構(gòu) | 圖速通】10分鐘掌握鄰接矩陣 & 鄰接表 | 快速掌握圖論基礎(chǔ) | 快速上手抽象數(shù)據(jù)類型圖

    by.Qin3Yu 請注意:嚴格來說,圖不是一種數(shù)據(jù)結(jié)構(gòu),而是一種抽象數(shù)據(jù)類型。但為了保證知識點之間的相關(guān)性,也將其列入數(shù)據(jù)結(jié)構(gòu)專欄。 本文需要讀者掌握順序表和單鏈表的操作基礎(chǔ),若需學習,可參閱我的往期文章: 【C++數(shù)據(jù)結(jié)構(gòu) | 順序表速通】使用順序表完成簡單的成

    2024年02月05日
    瀏覽(25)
  • Abstract Factory 抽象工廠

    Abstract Factory 抽象工廠

    提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定他們具體的類。 其中: AbstractFactory聲明一個創(chuàng)建抽象產(chǎn)品對象的操作接口。 ConcreteFactory實現(xiàn)創(chuàng)建具體產(chǎn)品對象的操作。 AbstractProduct為一類產(chǎn)品對象聲明一個接口。 ConcreteProduct定義一個將被相應(yīng)的具體工廠創(chuàng)建的

    2024年04月11日
    瀏覽(26)
  • 抽象工廠模式(Abstract Factory)

    抽象工廠模式(Abstract Factory)

    抽象工廠是一種 創(chuàng)建型設(shè)計模式 ,它能 創(chuàng)建一系列相關(guān)的對象,而無需指定其具體類 。 1. 問題 假設(shè)你正在開發(fā)一款家具商店模擬器。你的代碼中包括一些類,用于表示: 一系列相關(guān)產(chǎn)品,例如椅子(Chair)、沙發(fā)(Sofa)和咖啡桌(CoffeeTable) 系列產(chǎn)品的不同變體,例如你

    2024年02月11日
    瀏覽(22)
  • 抽象工廠模式(Abstract Factory Pattern)

    抽象工廠模式(Abstract Factory Pattern)

    回顧工廠方法設(shè)計模式的不足:具體產(chǎn)品增加時,系統(tǒng)中類的個數(shù)將成對增加,在一定程度上增加了系統(tǒng)的復雜度 產(chǎn)品等級結(jié)構(gòu):產(chǎn)品等級結(jié)構(gòu)即產(chǎn)品的繼承結(jié)構(gòu),即抽象產(chǎn)品與具體產(chǎn)品 產(chǎn)品族:在抽象工廠模式中,產(chǎn)品族是指由同一個工廠生產(chǎn)的,位于不同產(chǎn)品等級結(jié)構(gòu)

    2024年02月02日
    瀏覽(26)
  • 抽象工廠模式-Abstract Factory Pattern

    抽象工廠模式-Abstract Factory Pattern

    原文地址:https://jaune162.blog/design-pattern/abstract-factory-pattern/ 首先我們由一個實際問題來引出抽象工廠模式。 考慮這樣一個場景,系統(tǒng)中需要向OSS上傳文件,以及通過OSS下載文件。而在系統(tǒng)中有不同的業(yè)務(wù)在使用這兩個功能。如下圖: 偽代碼如下

    2024年02月20日
    瀏覽(20)
  • .NET Interface [接口]、abstract【抽象類】

    接口 Interface 接口不能被實例化 接口只能包含方法聲明 接口中的成員包括方法、屬性、索引器、事件 接口中不能包含常量、字段、構(gòu)造函數(shù)、析構(gòu)函數(shù)、靜態(tài)成員 接口中的所有成員默認 public,因此接口中不能有private修飾符 派生類必須實現(xiàn)接口的所有成員 一個類可以繼承多

    2024年02月05日
    瀏覽(23)
  • 設(shè)計模式——抽象工廠模式(Abstract Factory Pattern)

    設(shè)計模式——抽象工廠模式(Abstract Factory Pattern)

    概述 ?????? 抽象工廠模式的基本思想是將一些相關(guān)的產(chǎn)品組成一個“產(chǎn)品族”,由同一個工廠統(tǒng)一生產(chǎn)。在工廠方法模式中具體工廠負責生產(chǎn)具體的產(chǎn)品,每一個具體工廠對應(yīng)一種具體產(chǎn)品,工廠方法具有唯一性,一般情況下,一個具體工廠中只有一個或者一組重載的工

    2024年02月03日
    瀏覽(26)
  • C++11 設(shè)計模式4. 抽象工廠(Abstract Factory)模式

    C++11 設(shè)計模式4. 抽象工廠(Abstract Factory)模式

    從前面我們已經(jīng)使用了工廠方法模式 解決了一些問題。 現(xiàn)在 策劃又提出了新的需求:對于各個怪物,在不同的場景下,怪物的面板數(shù)值會發(fā)生變化, ?? ?//怪物分類:亡靈類,元素類,機械類 ?? ?//戰(zhàn)斗場景分類:沼澤地區(qū),山脈地區(qū),城鎮(zhèn)。 那么就有9類怪物====沼澤地

    2024年04月14日
    瀏覽(21)
  • 設(shè)計模式-創(chuàng)建型模式之抽象工廠模式(Abstract Factory)

    設(shè)計模式-創(chuàng)建型模式之抽象工廠模式(Abstract Factory)

    在工廠方法模式中具體工廠負責生產(chǎn)具體的產(chǎn)品,每一個具體工廠對應(yīng)一種具體產(chǎn)品,工廠方法也具有唯一性,一般情況下,一個具體工廠中只有一個工廠方法或者一組重載的工廠方法。但是有時候我們需要 一個工廠可以提供多個產(chǎn)品對象 ,而不是單一的產(chǎn)品對象。 為了更

    2023年04月20日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包