人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統 > 硬件軟件教程 > 詳細頁面

C ++編程的最新篇章(第3版)

C ++編程的最新篇章(第3版)

更新時間:2023-06-22 文章作者:未知 信息來源:網絡 閱讀次數:

根據運行的環境,操作系統可以分為桌面操作系統,手機操作系統,服務器操作系統,嵌入式操作系統等。

c/c++程序設計教程——面向過程分冊(第2版)_c/c++程序設計教程——面向過程分冊(第2版)_c程序設計語言 第2版新版 源碼

1.1面向對象的編程1.1.1基本概念

面向對象編程的主要特征是“程序=對象+消息”,其基本元素是類和對象. 面向對象程序設計在結構上具有以下特點.

(1)程序通常由類的定義和類的使用組成. 在主程序中,定義了每個對象,并定義了在它們之間傳遞消息的規則.

(2)程序中的所有操作都是通過向對象發送消息來實現的. 收到消息后,對象將啟動相應的方法以完成操作.

程序中使用的類可以由用戶自己定義,也可以使用現成的類(包括系統類庫中為用戶提供的類以及其他用戶自己設計和構建的其他類). 嘗試使用現成的類是面向對象編程所倡導的樣式.

1. 對象

在現實世界中客觀存在的任何事物都可以稱為對象. 它可以是有形的具體事物,例如書籍,桌子,汽車等,也可以是無形的抽象事物,例如表演. ,球類游戲等. 對象是構成現實世界的獨立單元. 它可以是簡單的也可以是復雜的. 復雜的對象可以由簡單的對象組成.

現實世界中的對象具有靜態屬性(或狀態)和動態行為(或操作). 例如,每個人都具有諸如姓名,性別,年齡,身高,體重等屬性,并且具有飲食,散步,睡覺和學習等行為. 因此,現實世界中的對象通常可以表示為“屬性+行為”.

在面向對象的編程中,對象是一個由對象名稱,幾個屬性和一組操作封裝的實體. 屬性數據是對對象固有特性的描述,操作是對這些屬性數據施加的動態行為,它是一系列實現步驟,通常稱為方法.

該對象通過封裝實現信息隱藏,其目的是防止來自外部的非法訪問. 對象和外界通過操作界面連接. 該操作的具體步驟在外部不可見. 操作界面提供了此對象的功能.

進行比喻類比,一個對象就像一個MP3. 使用MP3時,可以通過播放,暫停和錄制等按鈕來操作MP3. 通過這些按鈕,我們可以與MP3進行交互. 我們不需要了解這些交互. 由于這些操作被封裝在機器內部,并且其內部電路對我們隱藏,不可見并且無法修改,因此它們是如何具體實現的. 我們只能使用這些按鈕來操作MP3.

如果將MP3視為對象,則MP3的顏色,存儲容量和產品尺寸等參數等同于對象的屬性,而播放,暫停和錄制等操作等同于操作對象的按鈕及其按鈕等效于對象的界面. 在編程中使用對象時,就像通過按鈕,通過對象與外部之間的接口來操作MP3一樣,不僅使對象的操作簡單方便,而且具有很高的安全性和可靠性.

2. 課

c/c++程序設計教程——面向過程分冊(第2版)_c程序設計語言 第2版新版 源碼_c/c++程序設計教程——面向過程分冊(第2版)

在面向對象的編程中,類是具有相同屬性數據和操作的對象的集合. 它是一類對象的抽象描述. 例如,小張和老李是個人. 盡管它們的年齡,身高和體重不同,但是它們的基本特征是相同的,并且都具有相似的生理結構和行為. 因此,它們可以統稱為“人類”類,而諸如張小和老李之類的每個人都是“人類”類對象的具體實例.

該類是用于創建對象的模板. 該類包含用于描述和定義所創建對象狀態的方法. 通常,首先聲明該類,然后該類創建其對象. 根據此模板創建的每個具體實例都是一個對象.

類與對象之間的關系是抽象而具體的. 類是抽象許多對象的結果. 對象是類的實例. 例如,“汽車”是一個類,它是從數千輛混凝土汽車中抽象出來的一般概念,而“帕薩特”可以被視為“汽車”類的實例對象.

3. 屬性

對象中的數據稱為對象的屬性,而類中的特征稱為類的屬性. 例如,眼睛,鼻子,嘴等是“人”類的共同屬性,而張三的身高,年齡,性別,職業等是“張三”對象的屬性. 不同的類和對象具有不同的屬性.

4. 消息

現實世界中的對象不是孤立的實體,它們之間存在各種聯系. 同樣,在面向對象的編程中,也需要連接對象,稱為對象交互.

在面向對象的編程中,當需要對象執行操作時,它會向該對象發送一個請求,通常稱為“消息”. 當對象收到消息時,它將調用相關方法并執行相應的操作. 對象之間通過消息進行通信的這種機制稱為消息傳遞機制,可以通過消息傳遞來實現對象交互.

5. 方法

The

方法是對象可以執行的操作. 該方法包括兩部分: 接口和方法主體. 該方法的界面是消息模式,它告訴用戶如何調用該方法. 方法主體是實現該操作的一系列步驟,即一段程序代碼,該程序代碼封裝在對象內部,而外部用戶則看不見.

消息與方法之間的關系是: 對象從其他對象接收消息時調用相應的方法;否則,對象只能使用適當的方法來響應相應的消息. 因此,消息方式和方法接口應該保持一致,只要方法接口保持不變,方法主體的改變就不會影響方法調用.

1.1.2傳統編程及其局限性

c程序設計語言 第2版新版 源碼_c/c++程序設計教程——面向過程分冊(第2版)_c/c++程序設計教程——面向過程分冊(第2版)

計算機編程語言大致經歷了三個階段: 機器語言,匯編語言和高級語言.

1950年代初的程序是用機器語言和匯編語言編寫的,程序設計相當麻煩,嚴重影響了計算機的普及和應用.

Fortran是一種高級編程語言,它出現在1950年代中期,在計算機編程語言的發展歷史中具有劃時代的意義. 該語言引入了許多重要的編程概念,例如變量,數組,循環,條件分支等,但該語言也發現了一些使用上的缺陷c/c++程序設計教程——面向過程分冊(第2版),例如不同部分中相同的變量名稱容易混淆.

在1950年代后期,高級語言Algol 60的設計師決定在程序段中隔離變量,并提出了塊結構的想法. 塊結構由“ Begin ... End”實現,以保護數據.

1969年,E.W. Dijkstra首次提出了“結構化編程”的概念. 他強調從程序結構和風格方面對程序設計進行研究. 結構化程序的程序代碼按順序執行,具有完整的控制結構集,函數之間的參數根據某些規則傳遞,并且不提倡使用全局變量. 程序設計的主要問題是“設計過程”. 因此,結構化編程仍然是面向過程的編程.

到1970年代末,結構化的編程方法得到了極大的發展,但是由于程序的大小不斷增加c/c++程序設計教程——面向過程分冊(第2版),數據與處理數據的方法之間的分離常常使程序難以理解且令人不舒服. 由于程序開發,出現了“模塊化程序設計”.

模塊化編程將軟件分為幾個部分,可以分別命名和尋址,稱為“模塊”. 模塊化程序設計的思想是``自上而下,逐步完善''. 它的程序結構根據功能分為幾個基本模塊. 每個模塊之間的關系盡可能簡單,并且在功能上相對獨立. 模塊與模塊隔離,外部無法訪問模塊的內部信息,即該信息對模塊的外部是不透明的,只能通過嚴格定義的接口訪問模塊.

模塊化編程設計將數據結構和相應的算法集中在一個模塊中,并提出了``數據結構+算法=編程''的編程設計思想. 模塊化可以有效地管理和維護軟件開發,并且可以有效地分解和處理復雜的問題. 但是,它仍然是一種面向過程的編程方法. 程序員必須始終考慮要處理的數據的格式,并以相同格式對數據進行重新編程或對相同格式的數據執行不同的處理. 該代碼不可重用. 很好.

總之,隨著計算機技術的推廣,人們對計算機軟件的功能和性能的要求越來越高,使得傳統編程無法滿足日益增長的需求,這表現出以下限制.

1. 軟件開發效率低

盡管傳統的編程語言經歷了從低級語言到高級語言的發展,但它們仍然是過程語言. 程序設計仍從句子級別開始. 軟件生產缺少可重用的組件. 軟件重用問題尚未得到很好的解決,這導致軟件生產工程和自動化方面經常受到阻礙.

復雜度也是影響軟件生產效率的重要因素. 隨著計算機應用范圍的越來越廣,軟件的規模越來越大,需要解決的問題也越來越復雜. 傳統的程序設計將數據和數據操作分開,并且對同一數據的操作通常分散在程序的不同部分. 這樣,如果一個或多個數據的結構發生更改,則此更改將影響程序的許多部分,甚至遍及整個程序,從而導致許和過程需要重寫. 在嚴重的情況下,整個程序將崩潰. 因此,程序的復雜性是傳統編程的一個非常困難的問題,也是傳統編程難以取得根本突破的重要原因.

軟件維護是軟件生命周期中的最后一個環節. 傳統編程中將數據與數據操作分離的結構使得維護數據和處理數據的操作過程費時費力,嚴重影響了軟件的生產率.

c/c++程序設計教程——面向過程分冊(第2版)_c程序設計語言 第2版新版 源碼_c/c++程序設計教程——面向過程分冊(第2版)

簡而言之,要提高軟件的生產效率,必須解決軟件重用,復雜性和可維護性的問題,但這是傳統編程本身無法解決的.

2. 難以應對海量信息和各種信息

當前,要由計算機處理的數據已經從簡單的數字和字符演變成具有多種格式的多媒體數據,例如文本,音頻,視頻,圖形,圖像和等,并且所描述的問題已經演變. 從簡單的計算問題到復雜的自然和社會現象. 結果,計算機要處理的信息量和信息類型迅速增加,這要求編程語言具有更強大的信息處理能力,這是傳統編程無法實現的.

3. 難以適應各種新環境

目前,在計算機應用技術中,并行處理,分布式處理,網絡和多機系統應用已成為編程的主流,這要求系統具有一些可以獨立處理數據的節點,并且之間存在通信. 節點機制,即通過消息傳遞進行通信,而傳統編程也無能為力.

顯然,傳統編程已不能滿足計算機技術快速發展的需求. 大型軟件開發迫切需要一種全新的編程方法來滿足需求.

1.1.3面向對象編程的特征

面向對象編程是一種在結構化編程基礎上開發的全新編程方法. 其實質是將數據和處理數據的過程抽象為具有特定屬性和行為的實體(“對象”). 面向對象編程的最顯著特征是封裝,繼承和多態性.

1. 封裝

封裝是一種數據隱藏技術. 在面向對象的編程中,可以將數據和與數據相關的操作分組在一起以形成一個類. 該類的部分屬性和操作對用戶訪問是隱藏的,另一部分用作: 用戶可以訪問該類的外部接口. 該類通過接口與外部進行通信. 用戶只能通過類的外部接口使用類提供的服務,而內部特定的實現細節對外界是隱藏的.

封裝可以描述如下.

(1)清晰的邊界. 對象的所有屬性和操作都在此邊界內定義.

(2)外部接口. 該界面用于描述對象與其他對象之間的交互,即提供用戶在編寫程序時可以直接使用的屬性和操作.

c/c++程序設計教程——面向過程分冊(第2版)_c程序設計語言 第2版新版 源碼_c/c++程序設計教程——面向過程分冊(第2版)

(3)隱藏的受保護屬性和內部操作. 該類提供的功能的實現細節以及內部使用和修改的屬性僅不能定義對該對象的類的外部訪問.

C ++語言支持通過類進行封裝. 在C ++語言中,類是數據和相關操作的封裝,可以作為整體使用. 該類中的特定操作詳細信息已封裝. 使用已定義類的對象時,用戶無需了解該類內部的實際工作流程,只要他知道如何通過其外部接口使用它即可. 封裝的目的是防止非法訪問,它可以合理地控制屬性和操作的訪問權限,減少程序之間的交互,并減少錯誤的可能性.

2. 繼承

在面向對象的編程中,繼承是指創建新類以從現有類中獲取現有屬性和操作. 現有的類稱為基類或父類,通過繼承基類創建的新類稱為基類的子類或派生類. 從父類生成子類的過程稱為類派生.

C ++語言支持單繼承和多繼承. 通過繼承,程序可以在現有類的基礎上聲明一個新類,即新類是從原始類派生的,新類將共享原始類的屬性,還可以添加新屬性. 繼承有效地實現了軟件代碼的重用,并增強了系統的可伸縮性.

3. 多態性

在人們的日常生活中,“下棋”,“下棋”,“下棋”,“下棋”等通常統稱為“下棋”,即使用相同的名稱“下棋”,而不是“下棋”,“下棋”,“下棋”,“下棋”和類似活動.

在面向對象的編程中,多態性意味著相同的函數名稱可以具有多個不同的函數體,即一個函數名稱可以對應于多個不同的實現部分. 當調用同名函數時,由于環境不同,可能會觸發不同的行為和不同的動作. 此功能稱為多態. 它使類中具有相似功能的不同功能可以使用相同的功能名稱.

多態性不僅表達了人類的思維方式,而且減少了程序中標識符的數量,這方便了程序員編寫程序. 多態是面向對象編程的重要機制.

1.1.4面向對象的編程語言

隨著面向對象編程方法的發展,出現了許多面向對象的編程語言,例如Object-C,Java,C ++等. 這些語言可以大致分為以下兩類.

(1)重新開發一種新的面向對象的編程語言. 最具代表性的語言是Java,Smalltalk和Eiffel. Java語言適合于網絡應用程序編程; Smalltalk語言充分體現了面向對象編程的概念;除了封裝和繼承,埃菲爾語言還集成了其他面向對象的功能,是一種非常好的面向對象的編程語言.

(2)擴展了傳統的編程語言,并添加了由面向對象編程功能形成的語言. 這種類型的語言也稱為“混合語言”,通常通過在其他語言的基礎上添加面向對象編程的功能來開發. 典型的代表是C ++編程語言.

C ++編程語言是一種高效實用的面向對象的混合編程語言,包括兩部分: 一部分是C ++語言的基本部分,以C語言為核心,包括C語言的主要內容;另一部分是C ++語言的面向對象部分,是C ++語言對C語言的擴展,增加了面向對象編程的概念和功能. 這使得C ++語言既支持傳統的面向過程的程序設計和全新的面向對象的程序設計,又支持C語言的豐富應用程序基礎和開發環境. 對于精通C語言的用戶而言,學習C ++語言相對容易. 這些是C ++語言成為最流行的面向對象編程語言的主要原因. kh5YtWiNqXH1hxqC / P + LY8bdJXZNLovWzySa + I0peM5tfyyaPtLsFfxQJamFKA + e


本文來自本站,轉載請注明本文網址:
http://www.pc-fly.com/a/jisuanjixue/article-262558-1.html



溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 札达县| 清水河县| 文化| 石景山区| 凤冈县| 花莲县| 阳原县| 陵川县| 房产| 桂林市| 永丰县| 兴城市| 会东县| 阿尔山市| 五台县| 双牌县| 屯门区| 濮阳县| 昌平区| 石家庄市| 大足县| 闸北区| 吉安县| 清流县| 垫江县| 汕尾市| 旬邑县| 任丘市| 运城市| 陇南市| 满洲里市| 石家庄市| 嘉义市| 海晏县| 舟曲县| 梨树县| 普宁市| 五家渠市| 丰宁| 海盐县| 赞皇县|