C++概念與簡答_第1頁
C++概念與簡答_第2頁
C++概念與簡答_第3頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章緒論C+概念與簡答1、請簡述什么是面向對象的語言(對象)以及它們之間的關系。(1 )出發(fā)點:更直接地描述客觀世界中存在的事物(2)特點: 是高級語言。 將客觀事物看作具有屬性和行為的對象 通過抽象找出同一類對象的共同屬性和行為,形成類。 通過類的繼承與多態(tài)實現代碼重用。(3)優(yōu)點:使程序能夠比較直接地反映問題域的本來面目,軟件開發(fā)人員能夠利用人類認識事物所采用的一般思維方法來進行軟件開發(fā)。2、面向對象的方法(1) 將數據及對數據的操作方法封裝在一起,作為一個相互依存、不可分離的整體對 象。(2)對同類型對象抽象出其共性,形成類。_(3)類通過一個簡單的外部接口,與外界發(fā)生關系。(4 )對

2、象與對象之間通過消息進行通信。3、封裝把對象的屬性和服務結合成一個獨立的系統(tǒng)單元 4、繼承對于軟件復用有著重要意義,是面向對象技術能夠提高軟件開發(fā)效率的重要原因 。定義:特殊類的對象擁有其一般類的全部屬性與服務,稱作特殊類對一般類的繼承。5、多態(tài)性:同樣一個接口,不同的數據有不同的狀態(tài)6、面向對象的軟件工程(考察縮寫匹配)面向對象的分析(00A)意義:能夠很好地映射客觀事物。面向對象的設計(00D)面向對象的編程(OOP)面向對象的測試(00T)以對象的類作為基本測試單位面向對象的軟件維護(OOSM)7、程序的開發(fā)過程(1) 編輯:將源程序輸入到計算機中,生成后綴為cpp的磁盤文件。(2)編譯

3、:將程序的源代碼轉換為機器語言代碼。exe的可執(zhí)行文(3)連接 將多個源程序文件以及庫中的某些文件連在一起,生成后綴為 件。(4 )運行調試第二章C+簡單程序設計1、 語言的最基本單位是字符:字符一一詞一一 語句一一 函數一一 程序。2、字符集是構成C+語言的基本元素3、詞法記號是最小的詞法單位4、類型名的字節(jié)長度類型名長度(字節(jié))bool1char1sig ned char1un sig ned char1short (signed short)2un sig ned short2int (signed int)4un sig ned int4long (signed long)4un si

4、g ned long4float4double8long double85、 所謂常量是指在程序運行的整個過程中其值始終不可改變的量,也就是直接使用符號(文 字)表示的值。分為一般常量和符號常量兩種6、 實數常量缺省為 double型,如果后綴F (或f)可以使其成為float型(要和字符常量區(qū)分)7、字符串型常量是用雙引號括起來的一個或多個字符。& bool,值只能為 true 或false9、sizeof運算符用來求“類型名”所指定的類型或“表達式”的結果類型所占的字節(jié)數10、隱含轉換,基本原則是將低類型數據轉換為高類型數據11、 從流中獲取數據的操作稱為提取操作“ >>

5、;”,向流中添加數據的操作稱為插入操作“<<”。12、 cin用來處理標準輸入,即鍵盤輸入。cout用來處理標準輸出,即屏幕輸出。cout << 表達式 << 表達式cin >> 表達式 >> 表達式 13、結構是由不同數據類型的數據組成的集合體。第三章函數1、函數的調用調用前先聲明函數:若函數定義在調用點之前,則無需另外聲明;若函數定義在調用點之后,則需要在調用函數前按如下形式聲明函數原型:類型標識符被調用函數名(含類型說明的形參表);調用形式函數名(實參列表)嵌套調用函數可以嵌套調用,但不允許嵌套定義。遞歸調用函數直接或間接調用自

6、身。2、函數的參數傳遞(經常考選擇題)(經??歼x擇題)(經常考選擇題)(經??歼x擇題)在函數被調用時才分配形參的存儲單元。 實參可以是常量、變量或表達式。實參類型必須與形參相符。值傳遞是傳遞參數值,即單向傳遞。 引用傳遞可以實現雙向傳遞 常引用作參數可以保障實參數據的安全3、引用可以作為形參(作為形參不必初始化 )void swap(i nt &a, int &b) .4、有缺省參數的形參必須在形參列表的最后,也就是說缺省形參值的右面不能有無缺省值的參數。因為調用時實參與形參的結合是從左向右的順序。(要理解,考選擇題)int add(int x, int y = 5, int

7、z = 6);/ 正確int add(int x = 1, int y = 5, int z);/ 錯誤int add(int x = 1, int y, int z = 6);/ 錯誤5、 函數重載:C+允許功能相近的函數在相同的作用域內以相同函數名聲明,從而形成重 載。方便使用,便于記憶。要么形參類型不同,要么形參個數不同(不以形參名來區(qū)分,不以返回值來區(qū)分)6、 很多標準 C+函數繼承自標準 C,頭文件以 c開頭:cmath, cstdlib,cstdio, ctime第四章類與對象1、抽象的實現:通過類的聲明。2、類是具有相同屬性和行為的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一

8、的抽 象描述,其內部包括屬性和行為兩個主要部分。3、函數是將邏輯上相關的語句與數據封裝,用于完成特定的功能。而類則是邏輯上相關的函數與數據封裝,它是對所要處理的問題的描述。(非常重要的兩句話)4、類是一種用戶自定義類型5、 在關鍵字private后面聲明,只允許本類中的函數訪問,而類外部的任何函數都不能訪問。如果緊跟在類名稱的后面聲明私有成員,則關鍵字private可以省略。6、 類的對象是該類的某一特定實體,即類類型的變量。(想不到吧)聲明形式:類名對象名;例:Clock myClock;類中成員互訪:直接使用成員名類外訪問:使用“對象名成員名”方式訪問 public屬性的成員7、在類中說明

9、原型,可在類外給出函數體實現,并在函數名前使用類名加以限定。也可以 直接在類中給岀函數體,形成內聯成員函數。&內聯成員函數(愛考選擇題)為了提高運行時的效率,對于較簡單的函數可以聲明為內聯形式。內聯函數體中不要有復雜結構(如循環(huán)語句和switch語句)。在類中聲明內聯成員函數的方式:隱式一一將函數體放在類的聲明中。顯式使用inline關鍵字。9、結構與類的區(qū)別區(qū)別:(很重要)類中成員的缺省存儲屬性為私有的; 結構體中的缺省存儲屬性為公有的10、 構造函數的作用是在對象被創(chuàng)建時使用特定的值構造對象,或者說將對象初始化為一個 特定的狀態(tài)。在對象創(chuàng)建時由系統(tǒng)自動調用。如果程序中未聲明,則系統(tǒng)

10、自動產生出一個隱含的參數列表為空的構造函數允許為內聯函數、重載函數、帶默認形參值的函數11、拷貝構造函數是一種特殊的構造函數,其形參為本類的對象引用。class類名public :類名(形參);構造函數類名(類名 &對象名);拷貝構造函數;類名::類(類名&對象名)拷貝構造函數的實現 函數體 12、 析構函數:在對象的生存期結束的時刻系統(tǒng)自動調用它,然后再釋放此對象所屬的空間。第五章數據的共享與保護1、類作用域作用于特定的成員名2、類X的成員m具有類作用域,對 m的訪問方式如下:如果在X的成員函數中沒有聲明同名的局部作用域標識符,那么在該函數內可以訪問成員m。通過表達式X:m或

11、者x.m訪問。通過表達式 ptr->m 3、不在前述各個作用域中出現的聲明,就具有文件作用域,這樣聲明的標識符其作用域開 始于聲明點,結束于文件尾。4、文何作用域類件用域塊作用域5、標識符應聲明在先,引用在后。如果某個標識符在外層中聲明,且在內層中沒有同一標識符的聲明,則該標識符在內層可見。對于兩個嵌套的作用域, 如果在內層作用域內聲明了與外層作用域中同名的標識符,則外層作用域的標識符在內層不可見。6、對象從產生到結束的這段時間就是它的生存期7、在函數內部聲明靜態(tài)生存期對象,要冠以關鍵字static。&靜態(tài)數據成員用關鍵字static聲明該類的所有對象維護該成員的同一個拷貝必須在

12、類外定義和初始化,用(J來指明所屬的類。(重要考點)9、靜態(tài)成員屬于類,非靜態(tài)成員屬于對象。靜態(tài)成員函數只能引用屬于該類的靜態(tài)數據成員或靜態(tài)成員函數。10、“?!俺n愋偷膶ο蟊仨氝M行初始化,而且不能被更新。 常對象:必須進行初始化,不能被更新。con st類名對象名常引用:被引用的對象不能被更新。const類型說明符&引用名常數組:數組元素不能被更新(下一章介紹)。類型說明符con st數組名大小.常指針:指向常量的指針(下一章介紹)。11、一個源程序可以劃分為多個源文件:類聲明文件(.h文件)類實現文件(.cpp文件)類的使用文件(main()所在的.cpp文件)12、編譯預處理#i

13、nclude包含指令將一個源文件嵌入到當前源文件中該點處。#include< 文件名 >按標準方式搜索,文件位于C+系統(tǒng)目錄的include子目錄下#include"文件名”首先在當前目錄中搜索,若沒有,再按標準方式搜索。#define宏定義指令定義符號常量,很多情況下已被con st定義語句取代。定義帶參數宏,已被內聯函數取代。#defi ne MAX(a, b) (a)>(b)?(a): (b)#undef刪除由#define定義的宏,使之不再起作用。第六章數組指針與字符串1、數組元素所屬類的構造函數不聲明構造函數,則采用缺省構造函數。各元素對象的初值要求為相同

14、的值時,可以聲明具有默認形參值的構造函數。各元素對象的初值要求為不同的值時,需要聲明帶形參的構造函數。當數組中每一個對象被刪除時,系統(tǒng)都要調用一次析構函數。2、指針變量的聲明指針:內存地址,用于間接訪問內存單元指針變量:用于存放地址的變量3、指針變量的賦值運算向指針變量賦的值必須是地址常量或變量,不能是普通整數。但可以賦值為整數 ,表示空指針。指針的類型是它所指向變量的類型,而不是指針本身數據值的類型,任何一個指針本身的數據值都是 unsigned long int 型。4、 動態(tài)申請內存操作符newnew 類型名T (初始化參數列表)功能:在程序執(zhí)行期間,申請用于存放T類型對象的內存空間,并

15、依初值列表賦以初值。結果值:成功:T類型的指針,指向新分配的內存;失?。簰伋霎惓!?、釋放內存操作符 deletedelete 指針 p功能:釋放指針p所指向的內存。p必須是new操作的返回值。6、申請和釋放動態(tài)數組分配:new類型名T 數組長度數組長度可以是任何表達式,在運行時計算釋放:delete數組名p釋放指針p所指向的數組。p必須是用new分配得到的數組首地址。7、用字符數組存儲和處理字符串字符串常量(例:"program")各字符連續(xù)、順序存放,每個字符占一個字節(jié),以0 '結尾,相當于一個隱含創(chuàng)建的字符常量數組;“program ”出現在表達式中,表示這一

16、char數組的首地址;首地址可以賦給char常量指針;con st char *STRING1 = "program"字符串變量可以顯式創(chuàng)建字符數組來表示字符串變量,例如,以下三條語句具有等價的作用:char str8 = 'p', 'r', 'o', 'g', 'r', 'a', 'm', '0' ;char str8 = "program"char str = "program"&字符串的輸入/輸

17、出方法逐個字符輸入輸出將整個字符串一次輸入或輸出例:char c ="China"cout<<c;輸出字符不包括'0'輸出字符串時,輸出項是字符數組名,輸出時遇到0'結束。輸入多個字符串時,以空格分隔;輸入單個字符串時其中不能有空格。9、字符串處理函數strcat (連接),strcpy (復制), strcmp (比較),strlen (求長度), strlwr(轉換為小寫),strupr (轉換為大寫)頭文件 <string.h>第七章繼承與派生1、類的繼承與派生保持已有類的特性而構造新類的過程稱為繼承_在已有類的基礎上新

18、增自己的特性而產生新類的過程稱為派生。被繼承的已有類稱為基類(或父類)。派生出的新類稱為派生類。2、一個派生類,可以同時有多個基類,這種情況稱為多繼承一個派生類只有一個直接基類的情況,稱為單繼 直接參與派生出某類的基類稱為直接基類丿類的基類甚至更高層的基類稱為間接基類派生類成員是指除了從基類繼承來的所有成員之外,新增加的數據和函數成員。3、派生類生成過程派生新類經歷了三個步驟:吸收基類成員吸收基類成員之后,派生類實際上就包含了它的全部基類中除構造和析構函數之外的所 有成員。改造基類成員如果派生類聲明了一個和某基類成員同名的新成員(如果是成員函數, 則參數表也要相同,參數不同的情況屬于重載),派

19、生的新成員就覆蓋了外層同名成員添加新的成員派牛類新成員的加入是繼承與派牛機制的核心,是保證派牛類在功能上有所發(fā)展4、保護繼承(protected)基類的public和protected成員都以protected身份出現在派生類中,但基類的 private 成員不可直接訪問。派生類中的成員函數可以直接訪問基類中的public和protected成員,但不能直接訪問基類的private成員。通過派生類的對象不能直接訪問基類中的任何成員公有繼承保護繼承私有繼承基類 公有成員可訪問(pub)可訪問(pro)可訪問feW可訪問不i J訪冋不可訪冋基類可訪問(pro)可訪問(pro)可訪問toil)保護成

20、員不可訪冋基類不可訪問不戶訪問不討訪冋私有成員牛叫訪叵|1JV Jf小刊訪問上:派生類成員對基類成員的訪問權限 下:派生類對St對墓類成員的訪問權順5、類型兼容規(guī)則一個公有派生類的對象在使用上可以被當作基類的對象,反之則禁止。具體表現在: 派生類的對象可以隱含轉換為 (賦值給)基類對象。派生類的對象可以初始化基類的引用。 派生類的指針可以隱含轉換為基類的指針。當派生類對象被當成基類對象使用后,通過基類對象名、指針只能使用從基類繼承的成員6、繼承時的構造函數基類的構造函數不被繼承,派生類中需要聲明自己的構造函數。定義構造函數時,只需要對本類中新增成員進行初始化,對繼承來的基類成員的初始化,宜動調

21、用基類構造函數完成。派生類的構造函數需要給基類的構造函數傳遞參數7、構造函數的執(zhí)行順序(非常重要)調用基類構造函數,調用順序按照它們被繼承時聲明的順序(從左向右)。對成員對象進行初始化,初始化順序按照它們在類中聲明的順序。執(zhí)行派牛類的構造函數體中的內容。&同名隱藏規(guī)則:如要通過派生類對象訪問基類中被隱藏的同名成員,應使用基類名限定。第八章 多態(tài)性1、多態(tài)是指操作接口具有表現多種形態(tài)的能力,即能根據操作環(huán)境的不同采用不同的處理 方式。一組具有相同基本語義的方法能在同一接口下為不同的對象服務。多態(tài)的實現:-函數董載 -運算符重載_虛函數-靜態(tài):編譯時的多態(tài)動態(tài):運行時的多態(tài)2、運算符重載的規(guī)則C+幾乎可以重載全部數據的實際需要,對原有運算符進行適當的運算符,只能重載C+語言中已有的運算符,不可臆造新的。不能重載的運算符舉例:“”、“*”、“:”、“?:”重載之后運算符的優(yōu)先級和結合性都不會改變。不能改變操作數個數。運算符重載是針對新類型的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論