![二級電子一章_第1頁](http://file4.renrendoc.com/view10/M03/37/07/wKhkGWWImcCAQW0oAAA_GAM0Q0Y954.jpg)
![二級電子一章_第2頁](http://file4.renrendoc.com/view10/M03/37/07/wKhkGWWImcCAQW0oAAA_GAM0Q0Y9542.jpg)
![二級電子一章_第3頁](http://file4.renrendoc.com/view10/M03/37/07/wKhkGWWImcCAQW0oAAA_GAM0Q0Y9543.jpg)
![二級電子一章_第4頁](http://file4.renrendoc.com/view10/M03/37/07/wKhkGWWImcCAQW0oAAA_GAM0Q0Y9544.jpg)
![二級電子一章_第5頁](http://file4.renrendoc.com/view10/M03/37/07/wKhkGWWImcCAQW0oAAA_GAM0Q0Y9545.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第一章C++語言概述主要內(nèi)容C++語言的發(fā)展C++語言的特點面向?qū)ο蟪绦蛟O(shè)計C++語言的基本符號C++語言的詞匯C++程序的基本框架C++程序的開發(fā)過程21.1C++語言的發(fā)展C++語言起源于C語言C語言的優(yōu)勢:語言簡潔、緊湊,使用靈活、方便。具有豐富的運算符和數(shù)據(jù)類型。可以進行許多低級操作。程序運行效率高。代碼可移植性好。C語言的局限性:類型檢查機制相對較弱。缺少支持代碼重用的語言結(jié)構(gòu)。不適合開發(fā)大型軟件。31.1C++語言的發(fā)展為了滿足開發(fā)大規(guī)模程序的需要,1980年貝爾實驗室的BjarneStroustrup和他的同事們開始對C語言進行改進和擴充,將Simula67(一種早期的面向?qū)ο笳Z言)中類的概念引入到C語言,并將改進后的C語言稱為“帶類的C”(Cwithclass)。1983年夏,“帶類的C”正式命名為“C++”,并于同年7月首次對外發(fā)表。1985年由BjarneStroustrup編寫的《C++程序設(shè)計語言》一書出版,標(biāo)志著C++1.0版本誕生。此后,貝爾實驗室于1989年和1993年分別推出了C++2.0版本和C++3.0版本。經(jīng)過對C++語言的三次修訂后,美國國家標(biāo)準(zhǔn)委員會(ANSI)于1994年制定了ANSIC++標(biāo)準(zhǔn)草案,這個草案最終于1998年被國際標(biāo)準(zhǔn)化組織(ISO)批準(zhǔn)為國際標(biāo)準(zhǔn)(ISO/IEC14882)41.1C++語言的發(fā)展各個版本C++語言支持的新特性:5版本在C語言基礎(chǔ)上添加的新特性帶類的C類和派生類,公有成員和私有成員,構(gòu)造函數(shù)和析構(gòu)函數(shù),友元,內(nèi)聯(lián)函數(shù),賦值運算符的重載C++1.0虛函數(shù),函數(shù)運算符的重載,引用,常量C++2.0類的保護成員,多繼承,賦值和初始化的遞歸定義,抽象類,靜態(tài)成員函數(shù),const成員函數(shù)C++3.0模板,異常,類的嵌套,名字空間1.2C++語言的特點C++是一種面向?qū)ο蟮某绦蛟O(shè)計語言。主要包括如下面向?qū)ο蟪绦蛟O(shè)計特征:抽象數(shù)據(jù)類型。封裝和信息隱藏。以繼承和派生方式實現(xiàn)程序的重用。以運算符重載和虛函數(shù)實現(xiàn)多態(tài)性。以模板實現(xiàn)類型的參數(shù)化61.2C++語言的特點C++是程序員和軟件開發(fā)者在實踐中創(chuàng)造出來的C++語言是由從事實際系統(tǒng)開發(fā)工作的程序員在實踐中創(chuàng)造出來的。因此,C++往往從編寫實際程序的角度出發(fā)進行設(shè)計,為程序員提供了各種實用、靈活、高效的語言特性。71.2C++語言的特點C++是C語言的超集C++語言的設(shè)計宗旨就是在不改變C語言語法規(guī)則的基礎(chǔ)上擴充新的特性,因此C++中包含C語言的全部語法特征,每一個用C語言編寫的程序都是一個C++程序。能夠很好地兼容C語言是C++取得成功的原因之一81.2C++語言的特點由于具有上述特點,C++已經(jīng)開始取代C語言,廣泛應(yīng)用于各種領(lǐng)域的程序開發(fā)工作中。實踐表明,對于中型和大型程序的開發(fā)工作,使用C++的效果要比C語言好得多。C++正在從軟件的可靠性、可重用性、可擴充性、可維護性等方面體現(xiàn)出它的優(yōu)越性。91.3面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計(Object-OrientedProgramming,簡稱OOP)是20世紀(jì)80年代發(fā)展起來的一種程序設(shè)計方法,它通過模擬現(xiàn)實世界中的事物和關(guān)系,利用抽象、分類、歸納等方法來構(gòu)造軟件系統(tǒng)。與之相對應(yīng)的是結(jié)構(gòu)化程序設(shè)計(StructuredProgramming,簡稱SP)。結(jié)構(gòu)化程序設(shè)計是面向過程的,其主要思想是將功能分解并逐步求精101.3面向?qū)ο蟪绦蛟O(shè)計現(xiàn)實世界中的實際情況恰恰與結(jié)構(gòu)化程序設(shè)計思想不同?,F(xiàn)實世界種每一種事物都具有一些屬性來描述自身的特征,同時具有一些操作來改變自身狀態(tài)。例如,一輛汽車可以用型號、顏色、載重量、行駛速度等信息進行描述,它們都是這輛汽車的屬性;而開動汽車使它前進、后退、左轉(zhuǎn)、右轉(zhuǎn)等都是對汽車狀態(tài)的操作。程序設(shè)計中屬性對應(yīng)于數(shù)據(jù),操作對應(yīng)于算法。因此,將數(shù)據(jù)和處理數(shù)據(jù)的算法捆綁成一個整體就定義了一種事物的類型。事物類型是一種抽象的概念,只有屬于該類型的一個事物實例才是具體可見的,這個實例就叫做“對象”,而事物類型被稱為“類”,它們都是面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ)。111.3面向?qū)ο蟪绦蛟O(shè)計C++支持面向?qū)ο笏枷胫械娜齻€主要特征封裝性將數(shù)據(jù)和算法捆綁成一個整體,這個整體就是對象,描述對象的數(shù)據(jù)被封裝在其內(nèi)部。如果需要存取數(shù)據(jù),可通過對象提供的算法進行操作,無需知道對象內(nèi)部的數(shù)據(jù)是如何存儲的。這種思想被稱為信息隱藏。C++語言通過用戶定義類型——“類”,來支持封裝性和信息隱藏。用戶定義的類一旦建立,就可看成是一個完全封裝的實體,可作為一個整體單元來使用。類的內(nèi)部數(shù)據(jù)表示被隱藏起來,類的用戶不需要知道類內(nèi)數(shù)據(jù)的表示方法,只需執(zhí)行類對外提供的算法,就可以完成某項功能。121.3面向?qū)ο蟪绦蛟O(shè)計C++支持面向?qū)ο笏枷胫械娜齻€主要特征繼承性。繼承性是指一種事物保留了另一種事物的全部特征,并且具有自身的獨有特征。C++語言采用繼承來支持重用,程序可以在現(xiàn)有類型的基礎(chǔ)上擴展功能來定義新類型。新類型是從現(xiàn)有類型中派生出來的,因此稱為派生類。131.3面向?qū)ο蟪绦蛟O(shè)計C++支持面向?qū)ο笏枷胫械娜齻€主要特征多態(tài)性。多態(tài)性是指當(dāng)多種事物繼承自一種事物時,同一種操作在它們之間表現(xiàn)出不同的行為。例如,在一個使用面向?qū)ο笏枷刖帉懙睦L圖程序中可能含有四種類型的對象,它們分別用于表示抽象概念“形狀”以及具體概念“三角形”、“矩形”和“圓形”。其中三角形、矩形、圓形對象都繼承了形狀對象的全部特征,并且三者都有一個名為“顯示”的操作。但當(dāng)用戶對這三種不同的具體形狀分別執(zhí)行“顯示”操作時,會在屏幕上得到三種不同的圖案。這個例子就說明了多態(tài)性。C++語言中使用虛函數(shù)和抽象類的概念來支持多態(tài)性。141.4C++語言的基本符號C++語言中的基本符號可以分為三類:字母、數(shù)字、特殊符號1.字母:26個大寫字母和26個小寫字母,共52個2.數(shù)字:0123456789,共10個3.特殊符號,共30個:+-*/=,._:;?\”’~|!#%&()[]{}^<>和“空格”151.5C++語言的詞匯C++語言中的合法詞匯關(guān)鍵字。也稱為保留字,是由C++語言本身預(yù)先定義好的一類單詞。16ANSIC標(biāo)準(zhǔn)規(guī)定的關(guān)鍵字autobreakcaseCharconstcontinuedefaultDodoubleelseenumExternfloatforgotoIfintlongregisterReturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile1.5C++語言的詞匯boolcatchclassconst_castdeletedynamic_castexplicitfalsefriendinlinemutablenamespacenewoperatorprivateprotectedpublicreinterpret_casestatic_casttemplatethisthrowtruetrytypeidtypenameusingvirtualwchar_t17ANSIC++標(biāo)準(zhǔn)補充的關(guān)鍵字1.5C++語言的詞匯C++語言中的合法詞匯標(biāo)識符。用戶為程序中各種需要命名的“元素”所起的名字。這些“元素”包括:變量、符號常量、函數(shù)、函數(shù)的參數(shù)、結(jié)構(gòu)、類、對象等。標(biāo)識符的組成要規(guī)則:標(biāo)識符是一個以字母或下劃線開頭的,由字母、數(shù)字、下劃線組成的字符串。例如,Hello,var2是合法的標(biāo)識符;而012,3var,A*B是非法的標(biāo)識符標(biāo)識符不能與任意一個關(guān)鍵字同名。標(biāo)識符中的字母區(qū)分大小寫。標(biāo)識符不宜過長。C++語言一般設(shè)定一個標(biāo)識符的有效長度為32個字符。如果程序中的標(biāo)識符超過了這個長度,超出的部分被忽略不計。181.5C++語言的詞匯C++語言中的合法詞匯字面常量。常量是指在程序中固定不變的值。常量一般有兩種表示形式,即符號常量和字面常量例如,在“pi等于3.1416”這句話中,pi是一個符號常量,pi的值3.1416稱為字面常量。C++語言中符號常量的名字是一個標(biāo)識符,而字面常量則是一類特殊的單詞。字面常量分為整型、浮點型、字符型和字符串型四類。它們的具體命名規(guī)則將在第2章中介紹。191.5C++語言的詞匯C++語言中的合法詞匯運算符。運算符是對程序中的數(shù)據(jù)進行操作的一類單詞。C++語言中運算符的種類非常豐富,其中有:單字符組成的運算符,例如,+,-,*,/等雙字符組成的運算符,例如,++,<=,&&,*=,->等三個字符組成的運算符,例如,<<=,>>=等關(guān)鍵字運算符:new,delete,sizeof各種運算符的具體使用方法將在第2章中介紹。201.5C++語言的詞匯C++語言中的合法詞匯標(biāo)點符號。標(biāo)點符號是在程序中起分割內(nèi)容和界定范圍作用的一類單詞。21C++語言的標(biāo)點符號標(biāo)點符號描述
(空格)語句中各成分之間的分割符;
(分號)語句的結(jié)束符’(單引號)字符常量的起止標(biāo)記符”(雙引號)字符串常量的起止標(biāo)記符#(井字號)預(yù)處理命令的開始標(biāo)記符{(左花括號)復(fù)合語句的開始標(biāo)記符}(右花括號)復(fù)合語句的結(jié)束標(biāo)記符//(雙斜杠)行注釋的開始標(biāo)記符/*(斜杠和星號)塊注釋的開始標(biāo)記符*/(星號和斜杠)塊注釋的結(jié)束標(biāo)記符1.6C++程序的基本框架例1.1一個最簡單的C++程序。//ex1_1.cpp#include<iostream>intmain(){std::cout<<"ThisisasimpleC++program.\n"; return0;}運行結(jié)果:ThisisasimpleC++program.221.6C++程序的基本框架例1.1程序分析:第一行://ex1_1.cpp這是一個注釋行。注釋是程序編寫者為讀者作的一種說明。C++中提供了“行”和“塊”兩種注釋方法。行注釋的內(nèi)容從雙斜杠“//”開始到本行末尾結(jié)束,上例就是行注釋;塊注釋的內(nèi)容從符號“/*”開始到符號“*/”結(jié)束,例如,/*thisisthefirstlinethisisthesecondlinethisisthethirdline*/231.6C++程序的基本框架例1.1程序分析:第二行:#include<iostream>這是一條預(yù)處理命令。C++中每一個以符號“#”開頭的行都是預(yù)處理命令。使用預(yù)處理命令可以更好地組織程序。本行中預(yù)處理命令“#include<iostream>”的作用是將頭文件iostream的內(nèi)容加入到程序中。iostream是一個C++標(biāo)準(zhǔn)頭文件,其中定義了一些輸入輸出流對象。241.6C++程序的基本框架例1.1程序分析:第三行:intmain()本行是主函數(shù)的聲明。主函數(shù)是所有C++程序開始執(zhí)行的入口,無論主函數(shù)處于程序中的什么位置,總是最先執(zhí)行其中的代碼。按照C++語言的規(guī)定,每個程序都必須有且僅有一個主函數(shù),主函數(shù)的名稱必須為main。main前面的int表示主函數(shù)main將返回一個int類型的值。int代表整型值,它是C++中的一個基本數(shù)據(jù)類型。跟在main后面的圓括號“()”說明它是一個函數(shù)。在C++中所有的函數(shù)名稱后面都緊跟著一對圓括號,其中可以沒有內(nèi)容(即沒有參數(shù),例如本行),也可以包含函數(shù)的參數(shù)251.6C++程序的基本框架例1.1程序分析:第四、七行:在主函數(shù)main的聲明之后是用花括號“{}”括起來的函數(shù)主體部分。261.6C++程序的基本框架例1.1程序分析:第五行:std::cout<<"ThisisasimpleC++program.\n";本行是一條C++語句,它完成了此程序的主要功能,即向屏幕上輸出一行字符串。cout是C++中的標(biāo)準(zhǔn)輸出流對象,它通常代表計算機的屏幕。cout在標(biāo)準(zhǔn)頭文件iostream中聲明(注:標(biāo)識符cout位于std名字空間中,須用前綴std::進行修飾),因此要使用它就必須先包含此文件(見程序的第2行)。<<是輸出操作符,功能是將它右邊的內(nèi)容輸出到它左邊的指定設(shè)備上。本行末尾的分號“;”表示這條語句結(jié)束。在C++中所有的語句都要以分號結(jié)束271.6C++程序的基本框架例1.1程序分析:第六行:return0;本行是return語句,它的功能是使主函數(shù)main結(jié)束并將整數(shù)0返回給運行此程序的操作系統(tǒng)。返回整數(shù)0表示程序在執(zhí)行過程中沒有發(fā)生任何錯誤而正常結(jié)束。實際上,按照C++標(biāo)準(zhǔn)本行是可以省略的。如果在主函數(shù)main中沒有“return0;”語句,程序正常結(jié)束時也會自動向操作系統(tǒng)返回0281.7C++程序的開發(fā)過程開發(fā)一個C++程序通常包括編輯、編譯、鏈接、運行和調(diào)試等步驟。目前有許多軟件產(chǎn)品可以幫助我們完成C++程序的開發(fā)。例如,在Windows平臺下有Microsoft公司的VisualC++和Borland公司的C++Builder;在Linux平臺下有GUN的gcc和gdb等。下面以Microsoft公司的VisualC++6.0(簡稱VC6)為例介紹C++程序的開發(fā)過程。291.7C++程序的開發(fā)過程編輯在VC6集成開發(fā)環(huán)境中,用戶可以使用編輯窗口進行C++程序的編輯工作。VC6的編輯窗口是專門為編輯C++程序設(shè)計的,它提供了包括語法亮色、調(diào)用提示、自動縮進、查找和替換等在內(nèi)的一系列功能,使用起來十分方便。當(dāng)用戶完成了C++程序的編輯時,應(yīng)將輸入的程序文本保存為以.cpp為擴展名的文件(保存C++頭文件時應(yīng)以.h為擴展名)。301.7C++程序的開發(fā)過程編譯使用一種叫做“編譯器”的工具,將C++程序“翻譯”成機器指令編譯器所做的工作實際上是一種由高級語言到機器指令的等價變換。用戶提供給編譯器的輸入信息稱為源程序代碼,編譯器對源程序代碼進行一系列處理后最終產(chǎn)生的輸出結(jié)果稱為目標(biāo)代碼。在進行編譯之前還要完成一項稱為“預(yù)處理”的工作。它的目的是根據(jù)程序中的預(yù)處理命令對源程序代碼做出相應(yīng)的處理,或是為編譯器提供一些提示信息。在VC6集成開發(fā)環(huán)境中,用戶可以使用編譯(Compile)命令將一個以.cpp為擴展名的C++源程序文件轉(zhuǎn)換成一個以.obj為擴展名的目標(biāo)文件311.7C++程序的開發(fā)過程鏈接使用一種叫做“編譯器”的工具,將C++程序“翻譯”成機器指令將編譯器產(chǎn)生的目標(biāo)代碼變成可執(zhí)行程序還需要最后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國茶制床墊行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國石榴干紅葡萄酒行業(yè)投資前景及策略咨詢研究報告
- 2025年油壓壓彎床項目可行性研究報告
- 2025年有色金屬連桿項目可行性研究報告
- 2025年攪拌機攪拌臂項目可行性研究報告
- 2025年小體視棱鏡項目可行性研究報告
- 2025至2031年中國內(nèi)置式伺服放大器模塊行業(yè)投資前景及策略咨詢研究報告
- 2025年沖裁拉伸模具項目可行性研究報告
- 2025至2030年中國雞藥數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年香油紅尖椒項目投資價值分析報告
- 2025年酒店總經(jīng)理崗位職責(zé)與薪酬協(xié)議
- 綠色能源項目融資計劃書范文
- 大樹扶正施工方案
- 2024年全國職業(yè)院校技能大賽中職組(母嬰照護賽項)考試題庫(含答案)
- 課題申報參考:全齡友好視角下的社區(qū)語言景觀評估及空間優(yōu)化研究
- 五年級下冊語文四大名著??贾R點
- 2024年上海普陀區(qū)司法局招聘人民調(diào)解員考試真題
- 光伏發(fā)電項目施工組織設(shè)計方案及技術(shù)措施
- 小學(xué)一年級數(shù)學(xué)20以內(nèi)的口算題(可直接打印A4)
- 自動化設(shè)備技術(shù)合作協(xié)議書范文
- 作文紙(網(wǎng)格600字A4)
評論
0/150
提交評論