freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計(jì)算機(jī)畢業(yè)論文外文翻譯---面向?qū)ο蠛蚦-其他專(zhuān)業(yè)(已修改)

2025-02-04 02:19 本頁(yè)面
 

【正文】 1 面向?qū)ο蠛?C++ C++是目前所使用的眾多編程語(yǔ)言中的一種。為什么會(huì)有那么多的語(yǔ)言?為什么總會(huì)有新的語(yǔ)言不斷出現(xiàn)?編程語(yǔ)言可以幫助程序員方便實(shí)現(xiàn)從設(shè)計(jì)到實(shí)現(xiàn)。第一個(gè)編程語(yǔ)言對(duì)基本的機(jī)器結(jié)構(gòu)有很大的依賴性。這時(shí)程序的細(xì)節(jié)很笨重。只有硬件設(shè)計(jì)師了解如何在其他成分之外建立計(jì)算機(jī)體系,語(yǔ)言設(shè)計(jì)者同樣認(rèn)識(shí)到程序可以在一個(gè)高水平的環(huán)境編寫(xiě),因而是程序員可以不必了解機(jī)器的細(xì)節(jié)。 為什么有這么多高水平的編程語(yǔ)言?有很多語(yǔ)言可以訪問(wèn)大型數(shù)據(jù)庫(kù),格式化金融報(bào)告,控制機(jī)器人在工廠工作,處理機(jī)件,控制衛(wèi)星實(shí)時(shí)模擬核反應(yīng)堆,預(yù)測(cè)變化 的大氣層狀況,下棋和繪制電路圖。每一個(gè)問(wèn)題都需要不同的數(shù)據(jù)結(jié)構(gòu)和算法。程序語(yǔ)言作為一種工具幫助我們解決這些問(wèn)題。然而,并不是一種程序語(yǔ)言可以最好的解決所有問(wèn)題。新的語(yǔ)言被開(kāi)發(fā)來(lái)更好的解決一類(lèi)特定的問(wèn)題。其他語(yǔ)言可以用來(lái)解決不同的問(wèn)題領(lǐng)域和多方面的用途。每個(gè)程序語(yǔ)言固定一個(gè)特定的程序體系或設(shè)計(jì)程序原理。使用多種多樣的語(yǔ)言建立不同的設(shè)計(jì)方案。這些方案被叫做程序范例,幫助我們思考問(wèn)題,規(guī)范解決。 通過(guò)范例設(shè)計(jì)軟件 當(dāng)設(shè)計(jì)一個(gè)小的計(jì)算機(jī)程序或大的軟件系統(tǒng)是,我們要思考問(wèn)題的解決模式。怎樣去設(shè)計(jì)一個(gè)模式?程序范例提供 了許多不同的方法去設(shè)計(jì)和思考軟件系統(tǒng)。一個(gè)范例可以被認(rèn)為是一個(gè)模式或者一個(gè)框架來(lái)設(shè)計(jì)和描述軟件結(jié)構(gòu)。這個(gè)模式幫助我們?nèi)ニ伎己鸵?guī)范解決。我們可以選擇一種語(yǔ)言,使用范例獨(dú)立的完成。當(dāng)所選擇的語(yǔ)言提供的結(jié)構(gòu)和機(jī)制符合范例時(shí),就很容易完成。一般來(lái)說(shuō),幾種語(yǔ)言可能屬于同一種范例。因此,一種范例可以被看作一種語(yǔ)言的類(lèi)。 一種語(yǔ)言不僅要符合一種范例,而且能夠使用多種范例提供的特性和特征?;旌险Z(yǔ)言,如 C++,綜合了兩到三種范例。 C++包括了命令和程序范例的特性,例如,其前身 — C,和面向?qū)ο蠓独? 命令范例:命令范例的特性是 計(jì)算機(jī)的抽象模型和巨大的內(nèi)存存儲(chǔ)。這是計(jì)算機(jī)體系的 von Neumann 模型。計(jì)算命令,由一系列的命令組成,以代碼形式存儲(chǔ)。命令可以使機(jī)器找到解決方法,使用指定命令改變存儲(chǔ),變量讀取,算術(shù)和邏輯表達(dá)式,條件分枝控制執(zhí)行流。 程序范例:它包括了命令范例,還有對(duì)概念命令和表達(dá)的抽象機(jī)制。參數(shù),即存儲(chǔ)的一部分,被引進(jìn)在范例中。還包括重復(fù),選擇等特征。許多主流程序還是這種語(yǔ)言。程序范例在程序設(shè)計(jì)中首次引進(jìn)了抽象的概念。抽象可以把動(dòng)作和結(jié)果隔離。過(guò)程是抽象的表格,完成一些任務(wù)或功能。其他部分調(diào)用時(shí),只是正確有效的執(zhí)行 ,但不清楚過(guò)程的執(zhí)行。 2 程序范例和 ADT:數(shù)據(jù)抽象使一個(gè)數(shù)據(jù)對(duì)象的行為和它的描述或執(zhí)行相分離。用戶無(wú)法看到數(shù)據(jù)的基本操作,執(zhí)行可以方便的更改而不影響程序的運(yùn)行。 當(dāng)我們?cè)O(shè)計(jì)一個(gè)算法時(shí),需要一個(gè)特定的數(shù)據(jù)類(lèi)型執(zhí)行算法的操作。如果可以定義變量的數(shù)據(jù)類(lèi)型,而不影響到實(shí)際數(shù)據(jù)類(lèi)型的運(yùn)行,就可以很容易的制訂出算法。通過(guò)定義數(shù)據(jù)的用法和操作,假定可以選擇任何一種運(yùn)行,這種定義就叫做抽象數(shù)據(jù)類(lèi)型。抽象數(shù)據(jù)類(lèi)型的使用使得算法的設(shè)計(jì)得到更大的推廣,使得我們?cè)谒惴ㄔO(shè)計(jì)時(shí),注重了算法的全面,而不會(huì)拘泥于運(yùn)行的細(xì)節(jié)。當(dāng)算法設(shè)計(jì)完成 時(shí),實(shí)際的數(shù)據(jù)類(lèi)型被執(zhí)行。近來(lái),程序語(yǔ)言擴(kuò)展到支持新的數(shù)據(jù)類(lèi)型的定義和提供便利給數(shù)據(jù)抽象。 面向?qū)ο蟮姆独核匀槐A袅嗽S多程序范例的特征,過(guò)程仍然是計(jì)算的主要形式。但是,程序不僅僅是抽象值的運(yùn)算,在面向?qū)ο蠓独N還有對(duì)對(duì)象的運(yùn)算。對(duì)象同抽象數(shù)據(jù)類(lèi)型很相似,聯(lián)系著數(shù)據(jù)和運(yùn)算。 面向?qū)ο蠓独哂腥N主要特性,第一種,壓縮,其機(jī)制是為了實(shí)施數(shù)據(jù)抽象。第二種,繼承。繼承允許從已存在的對(duì)象中創(chuàng)建新的對(duì)象。這個(gè)新創(chuàng)建的對(duì)象是原對(duì)象的具體說(shuō)明。新對(duì)象的不同在于只需要提供方法或數(shù)據(jù)。當(dāng)一個(gè)對(duì)象從另一個(gè)對(duì)象中被創(chuàng)建或取得時(shí) ,就說(shuō)新對(duì)象繼承了它父對(duì)象的方法和數(shù)據(jù),并增加了一些新的描述和說(shuō)明。面向?qū)ο蟮牡谌N特性是多態(tài)。多態(tài)可以使不同類(lèi)型的的對(duì)象對(duì)相同的信息執(zhí)行相同的操作。例如,我們有一部分對(duì)象它們可以執(zhí)行一類(lèi)操作,但是只有在運(yùn)行時(shí)我們才知道對(duì)象的類(lèi)型。面向?qū)ο笳Z(yǔ)言包含的機(jī)制確保了每一類(lèi)信息傳遞給正確的對(duì)象。 壓縮,繼承和多態(tài)被認(rèn)為是面向?qū)ο蟪绦虻幕咎卣?,所有的面向?qū)ο蟪绦蛘Z(yǔ)言必須提供這些特征。一般來(lái)說(shuō),語(yǔ)言通過(guò)不同的途徑支持這些特征的實(shí)現(xiàn)。Smalltalk, C++, ObjectiveC, 和 Lisp with CLOS (the Common Lisp Object System)這些程序語(yǔ)言都是面向?qū)ο笳Z(yǔ)言的例子,它們都可以提供對(duì)壓縮,繼承和多態(tài)的支持。 構(gòu)建一個(gè)面向?qū)ο蟮某绦蛐枰獩Q定解決問(wèn)題所需的對(duì)象。這些對(duì)象被用來(lái)構(gòu)建計(jì)算,定義軟件系統(tǒng)的操作運(yùn)行。信息的傳遞是對(duì)象間最基本的相互作用機(jī)制。信息(從其他的對(duì)象或程序)傳遞給對(duì)象,以便通知對(duì)象運(yùn)行下一個(gè)操作。對(duì)象需要負(fù)責(zé)維護(hù)它所相關(guān)的數(shù)據(jù)的狀態(tài)。只有對(duì)象本身才可以改變它內(nèi)部的數(shù)據(jù)值。對(duì)象本身可以完全的調(diào)用它的子對(duì)象。一個(gè)對(duì)象的執(zhí)行是一個(gè)循環(huán)遞歸的過(guò)程,當(dāng)定義這個(gè)對(duì)象和 方法的初始值是,可以跳出這個(gè)循環(huán)遞歸的過(guò)程。這時(shí),這個(gè)方法和數(shù)據(jù)所組成的元素可以使用程序語(yǔ)言所提供的基本的構(gòu)造函數(shù)。 學(xué)習(xí)面向?qū)ο蠓独钪匾囊稽c(diǎn)是如何改變我們思考建造軟件體系的思路。系統(tǒng)被認(rèn)為是由多個(gè)單一獨(dú)立的個(gè)體組成,其中每個(gè)個(gè)體只負(fù)責(zé)對(duì)其自身的操作的運(yùn)行。每一個(gè)對(duì)象的設(shè)置和運(yùn)行都是自身所包含的。由于對(duì)象常常模仿真實(shí)世界的個(gè)體的概念,因而這樣的一個(gè)模型推動(dòng)了軟件方面的設(shè)計(jì)(以及后來(lái)的實(shí)行)。設(shè)計(jì) 3 一個(gè)系統(tǒng)使用面向?qū)ο蟮姆独?,從而使得系統(tǒng)的操作和運(yùn)行更類(lèi)似于真實(shí)世界中所對(duì)應(yīng)的真實(shí)個(gè)體。 C++面向?qū)ο蟮奶匦? 壓縮: C++繼承了 C 的發(fā)展,并且定義的新的方便的數(shù)據(jù)類(lèi)型。一個(gè)類(lèi)就像 C 的結(jié)構(gòu),但不同的是同時(shí)包括了數(shù)據(jù)和方法。除此之外, C++還提供了類(lèi)中各個(gè)成員訪問(wèn)權(quán)限的不同,以此方便的控制即使是在不同的類(lèi),也可以訪問(wèn)類(lèi)中的成員。 重復(fù)的調(diào)用一個(gè)抽象的數(shù)據(jù)可以對(duì)用戶隱藏對(duì)一個(gè)數(shù)據(jù)對(duì)象的操作細(xì)節(jié)。用戶只可以通過(guò)一個(gè)公共的接口來(lái)訪問(wèn)這個(gè)對(duì)象。一個(gè) C++的類(lèi)既包括共有的部分,又包括私有的部分。公有的部分提供給用戶關(guān)于這個(gè)類(lèi)的接口,私有的部分只有構(gòu)造這個(gè)類(lèi)的函數(shù)才可以訪問(wèn)。 C++提供了關(guān)鍵字來(lái)說(shuō)明類(lèi)中哪些 成員是不可見(jiàn)的,哪 些部分是其公共接口。不可見(jiàn)的成員在其定義的部分標(biāo)明了關(guān)鍵字 private。公共的接口部分標(biāo)有關(guān)鍵字public。當(dāng)一個(gè)類(lèi)是私有的類(lèi)時(shí),意味著只有這個(gè)類(lèi)的函數(shù)或友元可以使用它。 一個(gè)類(lèi)的定義并不分配內(nèi)存。當(dāng)一個(gè)數(shù)據(jù)對(duì)象被創(chuàng)建并且具有變量聲明時(shí)才分配內(nèi)存。構(gòu)造函數(shù)和析構(gòu)函數(shù)提供了對(duì)象的初始化和釋放功能。當(dāng)一個(gè)對(duì)象被聲明時(shí),它的構(gòu)造函數(shù)初始化其在內(nèi)存的值。當(dāng)對(duì)象離開(kāi)它所在的范圍時(shí),調(diào)用析構(gòu)函數(shù)釋放對(duì)象。 我們不可能對(duì)用戶完全的隱藏操作的細(xì)節(jié)。 C++無(wú)法提供一個(gè)使所有細(xì)節(jié)完全排除在基本操作之外的方法,因此一個(gè)類(lèi)的私 有部分必須這個(gè)類(lèi)的定義,從而有效的訪問(wèn)這個(gè)類(lèi)的變量,并可以繼承。建造一個(gè)類(lèi)可以使它方便的訪問(wèn)它父類(lèi)的私有成員。 C++定義了關(guān)鍵字 protected 來(lái)完成繼承的實(shí)現(xiàn)。保護(hù)成員既可以被類(lèi)的成員函數(shù)訪問(wèn),也可以被派生類(lèi)的成員函數(shù)訪問(wèn)。和私有成員相同的一點(diǎn),保護(hù)成員不可以被用戶程序訪問(wèn)。 對(duì)象所需要注意的最后一點(diǎn),信息的重復(fù)傳遞時(shí)對(duì)象間交流的基本功能。例如一個(gè)語(yǔ)句 i (),我們可以有效的把信息傳給 a2 的對(duì)象,以確定組的大小并返回其值。實(shí)際上,這里并沒(méi)有真的傳遞信息。 C++通過(guò)調(diào)用函數(shù)模擬信息的傳遞 。編譯器確保對(duì)所需要的對(duì)象調(diào)用正確的函數(shù),因此,在 C++中,可以把信息的傳遞當(dāng)作函數(shù)的調(diào)用。 當(dāng)設(shè)計(jì)了一種方案,一種程序語(yǔ)言就可以被選擇執(zhí)行??梢栽谠O(shè)計(jì)的過(guò)程中找到對(duì)象間的繼承關(guān)系,甚至可以使用傳統(tǒng)的,非面向?qū)ο蟮恼Z(yǔ)言設(shè)計(jì)系統(tǒng)。但是,使用面向?qū)ο笳Z(yǔ)言,如 C++,由于語(yǔ)言支持對(duì)象間的繼承關(guān)系,從而可以更方便的了解設(shè)計(jì)執(zhí)行。 C++語(yǔ)言是混合型的語(yǔ)言,它屬于多范例的語(yǔ)言。 C++可以認(rèn)為是 C 語(yǔ)言的擴(kuò)展的過(guò)程語(yǔ)言或面向?qū)ο笳Z(yǔ)言。 4 C++面向?qū)ο筇卣? C++繼承:任何面向?qū)ο蟪绦蛘Z(yǔ)言其最主要的作用就是可以從原有的類(lèi)中 創(chuàng)建新的類(lèi),從而可以再次使用代碼。繼承可以從與原有的類(lèi)型擴(kuò)展到派生類(lèi)型。 面向?qū)ο笤O(shè)計(jì)的一個(gè)主要操作就是要確認(rèn)真實(shí)世界的個(gè)體以及各個(gè)個(gè)體之間的聯(lián)系。當(dāng)設(shè)計(jì)一個(gè)軟件系統(tǒng)時(shí),需要建立一系列的對(duì)象,并且需要互相關(guān)聯(lián)的一系列對(duì)象。有些類(lèi)之間可能不是完全的相關(guān)。大部分的類(lèi)之間可以歸納為繼承的關(guān)系。將一系列的類(lèi)歸為一個(gè)類(lèi)的層次需要明白各個(gè)類(lèi)之間的關(guān)系和他們之間的細(xì)節(jié)。但不是所有的類(lèi)之間都可以建立繼承的關(guān)系。 C++提供了三種方式的繼承:公有繼承,私有繼承,保護(hù)繼承。這些不同的方式應(yīng)用在不同的對(duì)象間關(guān)系。 第一種關(guān)系是 ISA 關(guān)系。這種關(guān)系是類(lèi)型與類(lèi)型,類(lèi)與類(lèi)之間特有的關(guān)系。 ISA繼承指兩個(gè)類(lèi),其中一個(gè)類(lèi)描述了對(duì)對(duì)象的說(shuō)明,對(duì)對(duì)象的設(shè)置說(shuō)明由另一個(gè)類(lèi)來(lái)說(shuō)明。 ISA 的關(guān)系是傳統(tǒng)的繼承關(guān)系,也就是派生類(lèi)型。派生類(lèi)型是一些基本類(lèi)型即父類(lèi)型的專(zhuān)門(mén)化,在 C++中,超級(jí)類(lèi)型就是基類(lèi),派生類(lèi)型就是派生類(lèi)。 在 C++中執(zhí)行 ISA 關(guān)系需要使用公有繼承。在基類(lèi)中的公共部分使用公有繼承,在派生類(lèi)中也是公有的部分,在基類(lèi)中的保護(hù)部分使用公有繼承,在派生類(lèi)中也變成保護(hù)的部分 有時(shí)在兩個(gè)對(duì)象之間的關(guān)系也許是包含關(guān)系,也可以是部分整體之間的關(guān)系。不是所有對(duì)象它都是其他對(duì)象的一個(gè)專(zhuān)門(mén)說(shuō)明和繼承,可能這些對(duì)象有些是其他對(duì)象的一部分或是包含在其他的對(duì)象中。 在 C++中使用 HASA 關(guān)系可以使用成員或是私有繼承。例如,一個(gè)堆??梢员划?dāng)作一個(gè)數(shù)組使用。我們可以使用堆棧作為一個(gè)數(shù)據(jù)成員 ,或者使用私有繼承,從數(shù)組類(lèi)中繼承堆棧類(lèi)。 可以在兩個(gè)類(lèi)之間使用繼承創(chuàng)建一個(gè)互相包含的關(guān)系。私有繼承只有在不是接口的部分可以被使用,基類(lèi)是一個(gè)細(xì)節(jié)的執(zhí)行。在私有繼承的情況下,原來(lái)基類(lèi)中的公有部分和保護(hù)部分,在派生類(lèi)中都變?yōu)樗接胁糠?。派生?lèi)的使用者不可以訪問(wèn)基類(lèi)中的接口。但是派生類(lèi) 中的成員函數(shù)可以自由的訪問(wèn)或調(diào)用基類(lèi)中的公共部分和私有部分。當(dāng)這樣使用基類(lèi)中的成員時(shí),用戶不可以只依靠繼承來(lái)編寫(xiě)代碼。這是一個(gè)修改為不同的基類(lèi)的運(yùn)行。繼承的另一種方式,也是很少使用的一種方式就是保護(hù)繼承。保護(hù)繼承也是一種可以使用 HASA 關(guān)系的繼承。當(dāng)使用保護(hù)繼承時(shí),在基類(lèi)中的公有部分和保護(hù)部分,在派生類(lèi)中就都變?yōu)楸Wo(hù)部分。當(dāng)繼承是接口的部分時(shí),派生類(lèi)要使用保護(hù)繼承,但是不是接口的所有部分都可以被用戶使用。一個(gè)保護(hù)的基類(lèi)類(lèi)似于一個(gè)私有的基類(lèi),不同在于繼承的派生類(lèi)可以知道接口部分。 如果可以的話,最好使用數(shù)據(jù) 成員。這時(shí)當(dāng)你必須重復(fù)使用基類(lèi)中的函數(shù)時(shí),可以使用其繼承。如果你所有的派生類(lèi)是基類(lèi)的一個(gè)說(shuō)明構(gòu)造時(shí),只有使用公有繼承,否則,要使用私有繼承。當(dāng)在不必要時(shí)使用繼承,會(huì)使系統(tǒng)更加難以理解。 5 總之,一個(gè)類(lèi)有兩個(gè)主要的接口:一個(gè)是給用戶所使用的(公共接口),另一個(gè)派生類(lèi)所使用(公有部分和保護(hù)部分的聯(lián)合)。繼承的部分是基本相同的。在基類(lèi)中的公共接口使用公有繼承,在派生類(lèi)中隊(duì)用戶也是公有接口。在基類(lèi)中的公共部分和保護(hù)部分使用保護(hù)繼承,在派生類(lèi)中可以使用成員函數(shù),但并不對(duì)派生類(lèi)的所有用戶。最后,當(dāng)在基類(lèi)中的公共部分和保護(hù) 部分使用私有繼承,基類(lèi)可以調(diào)用,但用戶和派生類(lèi)不可以使用。 C++多態(tài):多態(tài)是面向?qū)ο蟪绦虻娜齻€(gè)特性中最重要的部分。多態(tài),和繼承一起,對(duì)面向?qū)ο蟪绦蛴泻艽蟮挠猛尽6鄳B(tài),就是說(shuō)有多個(gè)形式,提供一個(gè)基本的軟件接口以建立不同類(lèi)型的對(duì)象操作的統(tǒng)一的方式。 C++提供了三種類(lèi)型的多態(tài):虛函數(shù),函數(shù)重載和運(yùn)算符重載。 虛函數(shù)可以使繼承的同層相關(guān)的對(duì)象用同一種方式操作。當(dāng)所有的函數(shù)傳遞同樣的信息值時(shí),虛函數(shù)的機(jī)制確保在動(dòng)態(tài)運(yùn)行時(shí)了調(diào)用正確的函數(shù)。一個(gè)類(lèi)的普通的成員函數(shù)是靜態(tài)的單一的過(guò)程,在編譯時(shí)調(diào)用。它只有一個(gè)對(duì)成員函數(shù)的 說(shuō)明使用于類(lèi)中所有的例子。 當(dāng)定義一個(gè)成員函數(shù)時(shí),在它前面加上關(guān)鍵字 virtual,實(shí)際過(guò)程的調(diào)用依賴于對(duì)象實(shí)例的類(lèi)型,通過(guò)這樣來(lái)判斷如何調(diào)用。這是一個(gè)動(dòng)態(tài)的約束。靜態(tài)方式的束定也叫做早期束定。 虛函數(shù)機(jī)制可以通過(guò)一個(gè)基類(lèi)的參數(shù)或指針調(diào)用。一個(gè)基類(lèi)的指針可以指向一個(gè)基本類(lèi)型的對(duì)象或任何從基類(lèi)派生出的類(lèi)型的對(duì)象。虛函數(shù)也可以用在邏輯的運(yùn)算上。一個(gè)類(lèi)是抽象的類(lèi)當(dāng)這個(gè)類(lèi)是繼承的根節(jié)點(diǎn)時(shí)。一個(gè)類(lèi)當(dāng)它只有虛函數(shù)的定義而沒(méi)有實(shí)現(xiàn)時(shí)是抽象類(lèi)。這些函數(shù)在類(lèi)定義時(shí)被賦予 0 值。派生類(lèi)必須給出他們的實(shí)現(xiàn)。 另一個(gè)多態(tài)的形式是函數(shù) 重載。當(dāng)一個(gè)函
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1