資源描述:
《從C語言到C++語言》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、C語言是結(jié)構(gòu)化和模塊化的面向過程的語言C++是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,由C語言擴(kuò)展而來,保留了C語言的優(yōu)點(diǎn),添加了面向?qū)ο缶幊痰闹С郑哂忻嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)語言的三大特性:封裝性、繼承性和多態(tài)性。帶有面向?qū)ο蠊δ艿腃語言增強(qiáng)版本含類的C從C語言到C++語言C語言的誕生面向過程程序設(shè)計(jì)—C語言選定數(shù)據(jù)結(jié)構(gòu)、設(shè)計(jì)算法過程或函數(shù)。程序執(zhí)行被看作各過程調(diào)用的序列。面向過程編程:程序=數(shù)據(jù)結(jié)構(gòu)+算法設(shè)計(jì)思路自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分而治之。面向過程方法的不足缺點(diǎn):可重用性差、數(shù)
2、據(jù)安全性差、難以開發(fā)大型軟件和圖形界面的應(yīng)用軟件把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨(dú)立的實(shí)體當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),相關(guān)的處理過程都要相應(yīng)修改每一種相對(duì)于老問題的新方法都要帶來額外的開銷圖形用戶界面的應(yīng)用程序,很難用過程來描述和實(shí)現(xiàn),開發(fā)和維護(hù)也都很困難面向?qū)ο蟪绦蛟O(shè)計(jì)—C++語言將數(shù)據(jù)及對(duì)數(shù)據(jù)的操作方法封裝在一起,作為一個(gè)相互依存、不可分離的整體——對(duì)象。對(duì)同類型對(duì)象抽象出其共性,形成類。主要特征是各對(duì)象之間的消息傳遞和各類之間的繼承類通過一個(gè)簡(jiǎn)單的外部接口,與外界發(fā)生關(guān)系。對(duì)象與對(duì)象之間通過消息進(jìn)行通
3、信。面向?qū)ο蟪绦蛟O(shè)計(jì)一個(gè)類的集合和各類之間以繼承關(guān)系聯(lián)系起來的結(jié)構(gòu),再加上一個(gè)主程序,在主程序中定義各對(duì)象并規(guī)定它們之間傳遞消息的規(guī)律。面向?qū)ο缶幊蹋簩?duì)象=數(shù)據(jù)結(jié)構(gòu)+算法(封裝);程序=對(duì)象+對(duì)象+對(duì)象+……面向?qū)ο蟪绦蛟O(shè)計(jì)優(yōu)點(diǎn):程序模塊間的關(guān)系更為簡(jiǎn)單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。通過繼承與多態(tài)性,可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方便C語言中的關(guān)鍵字autobreakcasecharconstcontinuedefaultdodoubleelseenum
4、externforfloatgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhileC++語言中的關(guān)鍵字asmautobreakcasecatchcharclassconstcontinuedefaultdeletedodoubleelseenumexternfloatforfriendgotoifinlineintlongnearnewoperatorpr
5、ivateprotectedpublicregisterreturnshortsignedsizeofstaticstructswitchtemplatethisthrowtrytypedefunionunsignedvirtualvoidvolatilewhileC++對(duì)C的保留C++具有對(duì)傳統(tǒng)C語言的向后兼容性,很多已有的C程序可以稍加改造就可以重用。雖然C++具備面向?qū)ο蟮奶幚砟芰?,但它還是保留了很多面向過程的東西。用C++完全可以不用面向?qū)ο蟮乃枷雭磉M(jìn)行程序設(shè)計(jì),當(dāng)然人們不會(huì)這樣去做——除
6、了那些只是把C++看成是C擴(kuò)充的初學(xué)者。變量定義位置與作用域名字空間結(jié)構(gòu)體變量輸入輸出動(dòng)態(tài)內(nèi)存分配(new和delete)引用const修飾符函數(shù)原形內(nèi)聯(lián)函數(shù)帶缺省參數(shù)的函數(shù)變量定義位置與作用域C++允許變量定義語句在程序中的任何地方,只要在是使用它之前就可以;而C語言中,必須要在函數(shù)開頭部分如果全局變量與局部變量同名,那么局部變量在其作用域內(nèi)具有較高的優(yōu)先權(quán)。訪問被屏蔽的全局變量使用作用域操作符“::”名字空間以關(guān)鍵字namespace開頭,用花括號(hào)把文件的一部分括起來,在里面可定義自己的函數(shù)或
7、類,當(dāng)定義的函數(shù)或類和他人定義的重名時(shí),可用名字空間來區(qū)分。名字空間namespacens1{floata,b,c;fun1(){……}}花括號(hào)括起來的部分稱為程序塊(可包括:類、變量、函數(shù)等)在域外使用域內(nèi)成員時(shí),需加上名字空間名作為前綴,后面加上域操作符“::”名字空間域可嵌套,同樣有分層屏蔽作用namespacen1{namespacen2{//名字空間嵌套classmatrix{……}//名字空間類成員matrix//……}}訪問matrix,可寫:n1::n2::matrix。標(biāo)準(zhǔn)C++
8、庫中的所有組件都是在一個(gè)被稱為std的名字空間中聲明和定義的。使用標(biāo)準(zhǔn)C++庫中的組件,只要寫一個(gè)using指示符:usingnamespacestd;注意:如果使用了名空間std,則在使用#include編譯預(yù)處理命令包含頭文件時(shí),必須去掉頭文件的擴(kuò)展名.h,否則會(huì)出錯(cuò)。結(jié)構(gòu)體變量C++中,struct結(jié)構(gòu)體支持成員函數(shù)的定義,而C語言不允許在C語言中,聲明一個(gè)結(jié)構(gòu)體類型A之后,使用下面的語句來定義結(jié)構(gòu)體變量a:structAa;而C++中可以省略structC++中共用體名、枚