




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C期末考試復(fù)習(xí)必看考點C期末考試復(fù)習(xí)必看考點C期末考試復(fù)習(xí)必看考點題型:1讀程序?qū)懗鼋Y(jié)果(15%)2改錯(指出錯誤,并改正)(45%)3編程(20%)4MFC程序填空(20%)C++程序設(shè)計標識符關(guān)鍵字常量:十進制常量、八進制常量、十六進制常量長整型和無符號整數(shù)浮點數(shù)常量(小數(shù)表示法、指數(shù)表示法)字符常量和字符串常量、符號常量變量:命名、定義、初始化運算符與表達式:算術(shù)運算符及表達式、自增自減運算關(guān)系運算符(優(yōu)先級低于算術(shù)運算符)邏輯運算符、賦值運算符、條件運算符、逗號運算符類型轉(zhuǎn)換語句1條件語句:
if…else語句、switch語句2循環(huán)語句while語句、do…while語句、for語句3跳轉(zhuǎn)語句break語句、continue語句函數(shù):函數(shù)的定義函數(shù)聲明函數(shù)的調(diào)用函數(shù)調(diào)用時的參數(shù)傳遞(按值傳遞、地址傳遞、引用傳遞)return語句嵌套調(diào)用全局變量在函數(shù)外面定義的變量稱為全局變量。在C++中函數(shù)內(nèi)要引用全局變量,可以在變量的標識符前加上::說明是全局變量。特點:全局變量可被每個函數(shù)使用。作用域是程序級或文件級的。全局變量存放在全局數(shù)據(jù)區(qū)。全局變量默認初始值為0,也可專門初始化。inta;voidmain(){inta=1;::a=a;}局部變量局部變量即在函數(shù)內(nèi)部定義的變量或函數(shù)參數(shù)。作用域為函數(shù)級或塊級。局部變量僅在定義的函數(shù)內(nèi)部是可見的。特點:局部變量只能在函數(shù)內(nèi)部使用。局部變量存放在棧中,當(dāng)函數(shù)運行時分配空間,在運行結(jié)束時釋放空間。局部變量必須先初始化才能使用。局部變量可以與全局變量同名,則全局變量在函數(shù)中將不再起作用。(4)靜態(tài)局部變量在局部變量前加上static關(guān)鍵字,就成了靜態(tài)局部變量。特點:靜態(tài)局部變量在定義它的函數(shù)內(nèi)部是可見的,只能被定義它的函數(shù)使用。這一點與局部變量相同。靜態(tài)局部變量存放在內(nèi)存的全局數(shù)據(jù)區(qū),靜態(tài)局部變量一經(jīng)定義不會再次分配存儲空間,也不會自行消失,直到程序運行結(jié)束,這一點與全局變量相同。靜態(tài)局部變量默認初始值為0,也可專門初始化。這一點又與全局變量相同數(shù)組:一維數(shù)組:定義、引用、初始化二維數(shù)組:定義、引用、初始化字符數(shù)組與字符串:初始化、賦值、輸入、輸出、字符串處理函數(shù)(strlen、strcpy、strcat、strcmp、sprintf)指針:概念、運算符(*,&)、定義、使用、指針的運算指針與數(shù)組二級指針、指針數(shù)組引用:定義與使用結(jié)構(gòu)體類和對象類的構(gòu)成及定義(類內(nèi)不允許直接初始化變量,在類的說明部分之后必須加分號”;”。
)class<類名>{public:<公有數(shù)據(jù)成員和成員函數(shù)>;protected:<保護數(shù)據(jù)成員和成員函數(shù)>;private:<私有數(shù)據(jù)成員和成員函數(shù)>;};對象的定義,成員訪問
(1)訪問對象成員 <對象名>.<成員名>//用來訪問數(shù)據(jù)成員或者 <對象名>.<成員名>(<參數(shù)表>)//用來訪問成員函數(shù)(2)用指針訪問對象成員 <對象指針名>-><成員名>//用來訪問數(shù)據(jù)成員 <對象指針名>-><成員名>(<參數(shù)表>)//用來訪問成員函數(shù)或者 (*<對象指針名>).<成員名>//用來訪問數(shù)據(jù)成員 (*<對象指針名>).<成員名>(<參數(shù)表>)//用來訪問成員函數(shù)(3)用引用傳遞訪問對象成員 <引用名>.<成員名>//用來訪問數(shù)據(jù)成員或者 <引用名>.<成員名>(<參數(shù)表>)//用來訪問成員函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)定義
構(gòu)造函數(shù)和析構(gòu)函數(shù)都是類的成員函數(shù),但它們是特殊的成員函數(shù),不用調(diào)用便自動執(zhí)行,而且這些函數(shù)的名字與類的名字有關(guān)。創(chuàng)建對象時都要調(diào)用構(gòu)造函數(shù)(包括默認構(gòu)造函數(shù))。構(gòu)造函數(shù)的工作是建立對象的基本結(jié)構(gòu),進行數(shù)據(jù)初始化。執(zhí)行構(gòu)造函數(shù)體中的代碼。當(dāng)一個對象退出其作用域時,都要調(diào)用析構(gòu)函數(shù)。析構(gòu)函數(shù)的工作是:執(zhí)行析構(gòu)函數(shù)中的代碼,將對象占據(jù)的存儲空間歸還系統(tǒng),做公共及用戶要求的善后工作。構(gòu)造函數(shù)和析構(gòu)函數(shù)的特點:都沒有返回值說明,即定義構(gòu)造函數(shù)和析構(gòu)函數(shù)時不需指出類型。它們不能被繼承。和大多數(shù)C++函數(shù)一樣,構(gòu)造函數(shù)可以有缺省參數(shù)。析構(gòu)函數(shù)可以是虛的(virtual),但構(gòu)造函數(shù)不行。不可取它們的地址。不能用常規(guī)調(diào)用方法調(diào)用構(gòu)造函數(shù);當(dāng)使用完全的限定名(帶對象名、類名和函數(shù)名)時可以調(diào)用析構(gòu)函數(shù)。當(dāng)定義對象時,編譯程序自動調(diào)用構(gòu)造函數(shù);當(dāng)刪除對象時,編譯程序自動地調(diào)用析構(gòu)函數(shù)。構(gòu)造函數(shù):構(gòu)造函數(shù)重載(缺省的構(gòu)造函數(shù)和帶缺省值的構(gòu)造函數(shù))
若有帶參數(shù)的構(gòu)造函數(shù),在定義對象時必須給帶參數(shù)的構(gòu)造函數(shù)傳遞參數(shù),否則構(gòu)造函數(shù)將不被執(zhí)行。但在有些構(gòu)造函數(shù)的使用中,一般都使用缺省值。因為在構(gòu)造函數(shù)中允許指定函數(shù)參數(shù)的缺省值,這被定義的缺省值在函數(shù)調(diào)用者不確定參數(shù)時可以作為參數(shù)來使用。缺省參數(shù)可以是一個或一個以上,若有一個以上的缺省參數(shù),其用法和前面介紹的函數(shù)的缺省參數(shù)用法一樣。默認參數(shù)的順序規(guī)定當(dāng)函數(shù)中定義默認參數(shù)時,如果僅有部分參數(shù)定義成默認參數(shù),則應(yīng)將默認參數(shù)連續(xù)放在右邊(不能空缺)。當(dāng)調(diào)用函數(shù)時只能向左匹配參數(shù)。例如:voidfunc(inta=1,intb,intc=3,intd=4);//錯voidfunc(inta,intb=2,intc=3,intd=4);//正確對于第二個聲明,其調(diào)用的方法為:func(10,15,20,30);//正確func();//錯誤func(12,12);//正確,參數(shù)c,d默認func(2,15,,20);//錯誤,只能從右到左順序匹配默認參數(shù),這等于將c進行默認匹配,而沒有將d也默認匹配,也就是說,c默認匹配則d也必須先默認匹配。構(gòu)造函數(shù)和析構(gòu)函數(shù)執(zhí)行順序
構(gòu)造函數(shù)的執(zhí)行次序是先遇到哪個構(gòu)造函數(shù),就執(zhí)行哪個。析構(gòu)函數(shù)的執(zhí)行次序恰好和構(gòu)造函數(shù)相反。類的拷貝構(gòu)造函數(shù)拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù)。首先,它是一個構(gòu)造函數(shù),當(dāng)創(chuàng)建一個新對象時,系統(tǒng)自動調(diào)用它;其次,它的特殊功能是將參數(shù)代表的對象逐域拷貝到新創(chuàng)建的對象中。即用一個已有對象初始化一個正在建立的同類對象??截悩?gòu)造函數(shù)的定義有兩種形式:系統(tǒng)產(chǎn)生和用戶定義。#include“iostream.h”classpoint{intx,y;public:point(intvx,intvy){x=vx;y=vy;}point(constpoint&p){x=p.x;y=p.y;}voidprint(){cout<<x<<““<<y<<endl;}};voidmain(){pointp1(10,20);//定義一個point類對象p1pointp2(p1);//定義一個point類對象p2。此時,在定義對象p2時調(diào)用的是類中自定義的拷貝構(gòu)造函數(shù),值與p1對象的相同。pointp3=p1;//也可以用賦值的方式使用拷貝構(gòu)造函數(shù)p1.print();p2.print();p3.print()}對象指針:new和delete的使用#include<iostream.h>classCTest{private:inta,b;public:CTest(intx,inty=1){a=x;b=y;cout<<"Con"<<a<<b;}~CTest(){cout<<"Des"<<a<<b;}voiddisplay(){cout<<a<<""<<b<<endl;}};voidmain(){CTest*a;a=newCTest(2);deletea;}靜態(tài)數(shù)據(jù)成員在一個類中,若將一個數(shù)據(jù)成員說明為static,這種成員稱為靜態(tài)數(shù)據(jù)成員。無論建立多少個該類的對象,都只有一個靜態(tài)數(shù)據(jù)的拷貝。當(dāng)這個類的第一個對象被建立時,所有static數(shù)據(jù)都被初始化,并且,以后再建立對象時,就不需要再對其進行初始化。即編譯器只為該數(shù)據(jù)成員分配一份內(nèi)存空間,該類的各個對象公用它。classChinese{public:staticintgetSkinColor()//靜態(tài)成員函數(shù),能夠訪問static數(shù)據(jù){returnSkinColor;}private:staticintSkinColor;//靜態(tài)數(shù)據(jù)成員char*Name;};intChinese::SkinColor=YELLOW;//在類外對它初始化(注意必須采用類名來限定它)this指針this指針是隱含在類的成員函數(shù)中的一對象指針,每當(dāng)成員函數(shù)被調(diào)用時,this指針自動指向該成員函數(shù)所屬類的對象(即this指針代表當(dāng)前對象)??蓪⒊蓡T函數(shù)的形參名與類中成員數(shù)據(jù)同名。例如:classWindow{public:Window(intX,intY,intH,intW)//成員函數(shù)形參名{this->X=X;this->Y=Y;this->H=H;this->W=w;}private:intX,Y,H,W;//類中成員數(shù)據(jù)}對象數(shù)組的定義及初始化和訪問#include<iostream.h>classCTest{private:inta,b;public:CTest(intx,inty=1){a=x;b=y;}voiddisplay(){cout<<a<<""<<b<<endl;}};voidmain(){CTestarray[3]={CTest(2),CTest(3,3),5};for(inti=0;i<3;i++)array[i].display();}對象做函數(shù)參數(shù)對象作為類的數(shù)據(jù)成員C++中,類對象常??梢宰鳛榱硪粋€類的成員。使用對象成員著重要注意的問題是一個類的內(nèi)部初始化問題。友元為什么引入友元友元函數(shù)友元類繼承與派生:派生類定義、派生類成員重定義派生類的構(gòu)造函數(shù)的定義<派生構(gòu)造函數(shù)名>(<形參表>):<基類構(gòu)造函數(shù)名>(<形參表>),<對象成員1的構(gòu)造函數(shù)>(<形參表>)…<對象成員n的構(gòu)造函數(shù)>(<形參表>){<派生類中數(shù)據(jù)成員初始化>};派生類定義對象時構(gòu)造函數(shù)、析構(gòu)函數(shù)執(zhí)行順序
(1)調(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按照它們繼承時說明的順序。(2)調(diào)用對象成員的構(gòu)造函數(shù),調(diào)用順序按照它們在類中說明的順序。(3)派生類構(gòu)造函數(shù)體中的內(nèi)容。析夠時先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù),其順序與執(zhí)行構(gòu)造函數(shù)時的順序正好相反。基類與派生類之間的轉(zhuǎn)換
賦值兼容規(guī)則是指:在公有派生的情況下,一個派生類的對象可用于基類對象適用的地方。賦值兼容規(guī)則有三種情況(假定類derived由類base派生):(1)派生類的對象可以賦值給基類的對象。 derivedd; baseb; b=d;(2)派生類的對象可以初始化基類的引用。 derivedd; base&b=d;(3)派生類的對象的地址可以賦給指向基類的指針。 derivedd; base*pb=&d;虛函數(shù)與派生類純虛函數(shù)與抽象類(例題、實驗計算面積或體積)運算符重載(+-*/=[])友員、成員復(fù)數(shù)類、數(shù)組類(P149例6.4)重載運算符舉例函數(shù)模版#include<iostream.h>template<typenameT>Tmin(Ta[],intn){ inti; Tminv=a[0]; for(i=1;i<n;i++) if(minv>a[i])minv=a[i]; returnminv;}voidmain(){ inta[]={1,3,0,2,7,6,4,5,2}; doubleb[]={1.2,-3.4,6.8,9,8}; cout<<"a數(shù)組的最小值為:"<<min(a,9)<<endl; cout<<"b數(shù)組的最小值為:"<<min(b,4)<<endl;}類模版#include<iostream.h>template<classTT>classFF{ TTa1,a
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年稷山社工面試試題及答案
- 2025年運籌學(xué)對策論試題及答案
- 2025年零售媒體行業(yè)研究報告
- 2025年課程標準考試題及答案
- 鋼結(jié)構(gòu)拆除專項施工方案
- 5f的徑向分布函數(shù)極大值
- c++多線程同步原子操作原理
- 住宅水電施工方案
- 水罐施工方案
- 加熱涂料施工方案
- 2024年共青團入團考試測試題庫及答案
- 2024解析:第十二章機械效率-講核心(原卷版)
- 四川省德陽市(2024年-2025年小學(xué)五年級語文)人教版小升初真題(上學(xué)期)試卷及答案
- 2019北師大版高中英語單詞表全7冊
- 2023年海南省公務(wù)員錄用考試《行測》真題卷及答案解析
- 2024-2030年中國語言培訓(xùn)行業(yè)競爭分析及發(fā)展策略建議報告版
- 女性健康知識講座課件
- 兒童社區(qū)獲得性肺炎管理指南(2024修訂)
- 國際貿(mào)易規(guī)則變革研究
- 職業(yè)技能大賽互聯(lián)網(wǎng)營銷師(直播銷售員)賽項備賽試題庫(濃縮300題)
- 智鼎在線測評題庫推理題
評論
0/150
提交評論