C++要點(diǎn)、重點(diǎn)復(fù)習(xí)_第1頁(yè)
C++要點(diǎn)、重點(diǎn)復(fù)習(xí)_第2頁(yè)
C++要點(diǎn)、重點(diǎn)復(fù)習(xí)_第3頁(yè)
C++要點(diǎn)、重點(diǎn)復(fù)習(xí)_第4頁(yè)
C++要點(diǎn)、重點(diǎn)復(fù)習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C++面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)習(xí)2015-1-12第1章復(fù)習(xí)要點(diǎn)簡(jiǎn)單的C++程序#include<iostream>//用cout輸出時(shí)需要用

//此頭文件usingnamespacestd;//使用命名空間stdintmain(){cout<<"ThisisaC++program.\n";//用C++的方法輸出一行

return0;}輸入和輸出

格式:cout<<cin>> endl表示結(jié)束一行 數(shù)據(jù)類型const常量定義

constfloatPI=3.14159;

占用存儲(chǔ)單元,只讀不可寫(xiě)函數(shù)原型聲明

格式:函數(shù)類型函數(shù)名(參數(shù)列表);intmax(intx,inty);

要求:函數(shù)調(diào)用之前必須對(duì)所調(diào)用的函數(shù)作函數(shù)原型聲明函數(shù)重載 定義〔overload〕 要求:參數(shù)個(gè)數(shù)或參數(shù)類型不同有默認(rèn)參數(shù)的函數(shù) 格式:floatarea(floatr=6.5) 與函數(shù)重載的關(guān)系函數(shù)模版、函數(shù)重載例題1、對(duì)重載函數(shù)形參的描述中,錯(cuò)誤的選項(xiàng)是

A.參數(shù)的個(gè)數(shù)可能不同

B.參數(shù)的類型可能不同

C.參數(shù)的順序可能不同

D.參數(shù)的個(gè)數(shù)、類型、順序都相同,只是函數(shù)的返回值類型不同

D變量的引用* 函數(shù)傳值與函數(shù)傳地址 比照引用與指針:P19例1.10&1.11內(nèi)置函數(shù) inline 作用:空間換時(shí)間作用域運(yùn)算符::字符串變量 string定義,與字符數(shù)組的關(guān)系 賦值 字符串操作:復(fù)制、連接、比較new和delete運(yùn)算符例題1、對(duì)于動(dòng)態(tài)分配內(nèi)存空間描述正確的選項(xiàng)是

A.使用new運(yùn)算符分配的內(nèi)存空間的長(zhǎng)度必需是常量

B.delete運(yùn)算符可以釋放動(dòng)態(tài)的存儲(chǔ)空間和靜態(tài)的存儲(chǔ)空間

C.由new分配的內(nèi)存空間是不連續(xù)的

D.delete運(yùn)算符只能釋放由new分配的動(dòng)態(tài)存儲(chǔ)空間D什么是藍(lán)?類與對(duì)象類和對(duì)象在C++中,類是一種數(shù)據(jù)類型。intx;classstudentstd1;根本數(shù)據(jù)類型用戶定義數(shù)據(jù)類型變量〔實(shí)例〕對(duì)象〔實(shí)例〕1.類的聲明與對(duì)象的定義2.類的數(shù)據(jù)成員與成員函數(shù)3.對(duì)象成員的訪問(wèn)4.構(gòu)造函數(shù)與析構(gòu)函數(shù)5.Const6.Static7.New與delete8.拷貝構(gòu)造函數(shù)9.友元第2章要點(diǎn)復(fù)習(xí)根本概念 對(duì)象 封裝與信息隱蔽 抽象 繼承與重用 多態(tài)性聲明類類型*class

CGoods{

private

:

charName[21];

intAmount;

floatPrice;

floatTotal_value;public:void

CountTotal(void);};1.class關(guān)鍵字2.類名3.類體{};格式4.類數(shù)據(jù)成員5.類成員函數(shù)6.訪問(wèn)限定符定義對(duì)象的方法

1.先聲明類類型,然后再定義對(duì)象

classStudentstud1;

Studentstud1;

2.在聲明類類型的同時(shí)定義對(duì)象

classStudent{}stud1;

3.不出現(xiàn)類名,直接定義對(duì)象

class{}stud1;類與結(jié)構(gòu)體類型的異同

1.用class聲明的類如果不帶成員訪問(wèn)限定符,所有成員默認(rèn)限定為private;

2.用struct聲明的類如果不帶成員訪問(wèn)限定符,所有成員默認(rèn)限定為public。類成員數(shù)據(jù)成員/成員變量--private成員函數(shù)/成員方法--publicinline成員函數(shù)成員函數(shù)的存儲(chǔ)方式成員函數(shù)的存儲(chǔ)方式數(shù)據(jù)區(qū)代碼區(qū)對(duì)象1對(duì)象2數(shù)據(jù)區(qū)代碼區(qū)對(duì)象n......?dāng)?shù)據(jù)區(qū)代碼區(qū)數(shù)據(jù)區(qū)對(duì)象1數(shù)據(jù)區(qū)對(duì)象2數(shù)據(jù)區(qū)對(duì)象n......公共代碼區(qū)對(duì)象成員的訪問(wèn)*對(duì)象名+成員運(yùn)算符stud1.num=1001;對(duì)象指針Student*p=&stud1;pnum=1001;

對(duì)象引用Student&s=stud1;s.num=1001;類的封裝性和信息隱蔽1.公用接口與私有實(shí)現(xiàn)的別離2.類聲明和成員函數(shù)定義的別離P64-653.名詞:對(duì)象、方法、消息stud.display();第3章復(fù)習(xí)要點(diǎn)構(gòu)造函數(shù)*構(gòu)造函數(shù)是特殊的公有成員函數(shù),其特征如下: 1.函數(shù)名與類名相同。 2.構(gòu)造函數(shù)無(wú)函數(shù)返回類型說(shuō)明。注意是什么也不寫(xiě),也不可寫(xiě)void!實(shí)際上構(gòu)造函數(shù)有返回值,返回的就是構(gòu)造函數(shù)所創(chuàng)立的對(duì)象。 3.在程序運(yùn)行時(shí),當(dāng)新的對(duì)象被建立,該對(duì)象所屬的類的構(gòu)造函數(shù)自動(dòng)被調(diào)用,在該對(duì)象生存期中也只調(diào)用這一次。 4.構(gòu)造函數(shù)可以重載。嚴(yán)格地講,說(shuō)明中可以有多個(gè)構(gòu)造函數(shù),它們由不同的參數(shù)表區(qū)分,系統(tǒng)在自動(dòng)調(diào)用時(shí)按一般函數(shù)重載的規(guī)那么選一個(gè)執(zhí)行。 5.構(gòu)造函數(shù)可以在類中定義,也可以在類外定義。 6.如果類說(shuō)明中沒(méi)有給出構(gòu)造函數(shù),那么C++編譯器自動(dòng)給出一個(gè)缺省的構(gòu)造函數(shù):類名(void){}但只要我們定義了一個(gè)構(gòu)造函數(shù),系統(tǒng)就不會(huì)自動(dòng)生成缺省的構(gòu)造函數(shù)。只要構(gòu)造函數(shù)是無(wú)參的或各參數(shù)均有缺省值的,C++編譯器都認(rèn)為是缺省的構(gòu)造函數(shù),并且缺省的構(gòu)造函數(shù)只能有一個(gè)。構(gòu)造函數(shù)的重載*缺省構(gòu)造函數(shù)

Time::Time() {hour=0;minute=0;sec=0;}Timet;帶參數(shù)的構(gòu)造函數(shù)

Time::Time(inth,intm,ints) {hour=h;minute=m;sec=s;}

Timet(13,10,11);用參數(shù)初始化表

Time::Time(inth,intm,ints):hour(h),minute(m),sec(s){}使用默認(rèn)參數(shù)的構(gòu)造函數(shù)

Time::Time(inth=13,intm=10,ints=11){hour=h;minute=m;sec=s;}Timet;析構(gòu)函數(shù) 當(dāng)一個(gè)對(duì)象定義時(shí),C++自動(dòng)調(diào)用構(gòu)造函數(shù)建立該對(duì)象并進(jìn)行初始化,那么當(dāng)一個(gè)對(duì)象的生命周期結(jié)束時(shí),C++也會(huì)自動(dòng)調(diào)用一個(gè)函數(shù)注銷該對(duì)象并進(jìn)行善后工作,這個(gè)特殊的成員函數(shù)即析構(gòu)函數(shù)〔destructor〕: 1.

構(gòu)函數(shù)名與類名相同,但在前面加上字符‘~’,如~CGoods〔〕。 2.

析構(gòu)函數(shù)無(wú)函數(shù)返回類型,與構(gòu)造函數(shù)在這方面是一樣的。但析構(gòu)函數(shù)不帶任何參數(shù)。 3.一個(gè)類有一個(gè)也只有一個(gè)析構(gòu)函數(shù),這與構(gòu)造函數(shù)不同。析構(gòu)函數(shù)可以缺省。 4.對(duì)象注銷時(shí),系統(tǒng)自動(dòng)調(diào)用析構(gòu)函數(shù)。調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的順序構(gòu)造函數(shù)和析構(gòu)函數(shù)例題1.在下面有關(guān)對(duì)構(gòu)造函數(shù)的描述中,正確的選項(xiàng)是

。A.

構(gòu)造函數(shù)可以帶有返回值B.

構(gòu)造函數(shù)的名字與類名完全相同C.

構(gòu)造函數(shù)必須帶有參數(shù)D.構(gòu)造函數(shù)必須定義,不能缺省2.在下面有關(guān)析構(gòu)函數(shù)特征的描述中,錯(cuò)誤的選項(xiàng)是

。A.

一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù)B.

析構(gòu)函數(shù)名與類名完全相同C.

析構(gòu)函數(shù)不能指定返回類型D.

析構(gòu)函數(shù)不能帶有參數(shù)3.假定AB為一個(gè)類,那么執(zhí)行“AB

a(4),b[3],*p[2];”語(yǔ)句時(shí),自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為

。3

B.4

C.6

D.94.對(duì)于任意一個(gè)類,析構(gòu)函數(shù)的個(gè)數(shù)最多為(B)A.0B.1C.2D.3對(duì)象數(shù)組

對(duì)象數(shù)組的定義、初始化、建立數(shù)組的同時(shí)調(diào)用構(gòu)造函數(shù)

P82例3.6對(duì)象指針*

1.指向?qū)ο蟮闹羔?/p>

2.指向?qū)ο蟪蓡T的指針

2.1.指向?qū)ο髷?shù)據(jù)成員的指針

2.2.指向?qū)ο蟪蓡T函數(shù)的指針

3.this指針

P85例3.7this指針的作用共用數(shù)據(jù)的保護(hù)Const對(duì)內(nèi)存的使用—只讀不可寫(xiě)〔寫(xiě)在首次/初始化完成〕。常對(duì)象constTimet; 或:Timeconstt;常數(shù)據(jù)成員constinthour;常成員函數(shù)voidget_time()const;指向?qū)ο蟮某V羔?/p>

Time*constp1=&t1;指向常對(duì)象的指針變量

constTime*p1=&t1;對(duì)象的常引用

constTime&t=t1;voidfun(constTime&t);{//不可改變t的值}對(duì)象的動(dòng)態(tài)建立和釋放new&deleteBox*pt; pt=newBox;deletept;靜態(tài)成員Static由關(guān)鍵字static修飾說(shuō)明的類成員,成為靜態(tài)類成員〔staticclassmember〕。雖然使用static修飾說(shuō)明,但與函數(shù)中的靜態(tài)變量有明顯差異。類的靜態(tài)成員為其所有對(duì)象共享,不管有多少對(duì)象,靜態(tài)成員只有一份存于公用內(nèi)存中。靜態(tài)數(shù)據(jù)成員 初始化〔只能在類體外進(jìn)行初始化〕 既可以通過(guò)對(duì)象名引用,也可以通過(guò)類名來(lái)引用靜態(tài)成員函數(shù) 靜態(tài)成員函數(shù)沒(méi)有this指針 靜態(tài)成員函數(shù)訪問(wèn)靜態(tài)數(shù)據(jù)成員,不訪問(wèn)非靜態(tài)成員對(duì)象的賦值對(duì)象的復(fù)制拷貝構(gòu)造函數(shù)類名對(duì)象2〔對(duì)象1〕Box::Box(constBox&b){height=b.height;width=b.width;length=b.length;}Static例題假定類AB中有一個(gè)公有屬性的靜態(tài)數(shù)據(jù)成員bb,在類外不通過(guò)對(duì)象名訪問(wèn)該成員bb的寫(xiě)法為

〔1〕

。靜態(tài)成員〔static〕屬于__類__,而不屬于__任何一個(gè)對(duì)象__,它被同一個(gè)類的所有對(duì)象共享。友元

友元函數(shù):friendvoiddisplay(Time&);

友元成員函數(shù):friendvoidTime::display(Date&);友元類

允許另一個(gè)類或函數(shù)訪問(wèn)你的類的東西。ClassA{Private:inti=0;Friendclassb//聲明}ClassB{}Voidmain(){Aa1=newA();Bb1=newB();Intj=b1.i;\\可直接訪問(wèn)A類里的}如B是A的友元類,那么a對(duì)b完全開(kāi)放包括private,也就是B可以訪問(wèn)A里任何東西友元例題13、關(guān)于友元函數(shù)

的描述中,錯(cuò)誤的選項(xiàng)是

A.友元函數(shù)不是成員函數(shù)

B.友元函數(shù)只能訪問(wèn)類中私有成員

C.友元函數(shù)破壞隱藏性,盡量少用

D.友元函數(shù)說(shuō)明在類體內(nèi),使用關(guān)鍵字friendB類模版〔不考〕第4章復(fù)習(xí)要點(diǎn)運(yùn)算符重載的方法* 格式:函數(shù)類型operator運(yùn)算符名稱(形參表列){對(duì)運(yùn)算符的重載處理} 復(fù)數(shù)+P122例4.2 運(yùn)算符重載的規(guī)那么P124-126運(yùn)算符重載的實(shí)現(xiàn)

1.類成員函數(shù)

2.友元函數(shù)

參數(shù)個(gè)數(shù)參數(shù)次序類成員函數(shù)參數(shù)個(gè)數(shù)=原操作數(shù)個(gè)數(shù)-1(后置++、--除外)左側(cè)為類類型友元函數(shù)參數(shù)個(gè)數(shù)=原操作數(shù)個(gè)數(shù),且至少應(yīng)該有一個(gè)自定義類型的形參。隨意雙目運(yùn)算符重載

P134例4.4單目運(yùn)算符重載區(qū)別“前置和后置”重載流插入運(yùn)算符和流提取運(yùn)算符* 重點(diǎn)是格式:友元函數(shù)/普通函數(shù)

istream&

operator>>(istream&,自定義類&);ostream&

operator<<(ostream&,自定義類&);不同類型數(shù)據(jù)間的轉(zhuǎn)換〔不考〕運(yùn)算符重載例題假定要對(duì)類AB定義加號(hào)操作符重載成員函數(shù),實(shí)現(xiàn)兩個(gè)AB類對(duì)象的減法,并返回相減結(jié)果,那么該成員函數(shù)的聲明語(yǔ)句為:()A、AB&operator-() B、ABoperator-(AB&a)C、operator-(ABa) D、ABoperator-(AB&a,AB&b)B

第5章復(fù)習(xí)要點(diǎn)面向?qū)ο蟪绦蛟O(shè)計(jì)有4個(gè)主要特點(diǎn):

1.抽象

2.封裝

3.繼承

4.多態(tài)性青處于藍(lán),而勝于藍(lán)繼承〔inheritance〕機(jī)制是面向?qū)ο蟪绦蛟O(shè)計(jì)使代碼可以復(fù)用的最重要的手段,它允許程序員在保持原有類特性的根底上進(jìn)行擴(kuò)展,增加功能。這樣產(chǎn)生新的類,稱派生類。繼承呈現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計(jì)的層次結(jié)構(gòu)。表達(dá)了由簡(jiǎn)單到復(fù)雜的認(rèn)識(shí)過(guò)程。多態(tài)性〔polymorphism〕多態(tài)性是考慮在不同層次的類中,以及在同一類中,同名的成員函數(shù)之間的關(guān)系問(wèn)題。函數(shù)的重載,運(yùn)算符的重載,屬于編譯時(shí)的多態(tài)性。以虛函數(shù)為根底的運(yùn)行時(shí)的多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)的標(biāo)志性特征。表達(dá)了類推和比喻的思想方法。派生類的聲明方式定義格式*class派生類名:訪問(wèn)限定符基類名1《,訪問(wèn)限定符基類名2,……,訪問(wèn)限定符基類名n》{《private:》

成員表1;》

//派生類增加或替代的私有成員《public:

成員表2;》

//派生類增加或替代的公有成員《protected:

成員表3;》

//派生類增加或替代的保護(hù)成員};//分號(hào)不可少繼承過(guò)程編制派生類時(shí)可分四步

吸收基類的成員

改造基類成員

開(kāi)展新成員重寫(xiě)構(gòu)造函數(shù)與析構(gòu)函數(shù)

不管是數(shù)據(jù)成員,還是函數(shù)成員,除構(gòu)造函數(shù)與析構(gòu)函數(shù)外全盤(pán)接收聲明一個(gè)和某基類成員同名的新成員,派生類中的新成員就屏蔽了基類同名成員稱為同名覆蓋〔override〕派生類新成員必須與基類成員不同名,它的參加保證派生類在功能上有所開(kāi)展。派生類的構(gòu)成*繼承分類基類1基類2……基類n派生類1派生類2基類派生類1派生類2〔a〕多重繼承〔b〕單繼承一個(gè)基類可以直接派生出多個(gè)派生類

派生類可以由多個(gè)基類共同派生出來(lái),稱多重繼承。派生類成員的訪問(wèn)屬性*多級(jí)派生時(shí)的訪問(wèn)屬性

P164例5.4繼承例題1.在公有繼承的情況下,基類成員在派生類中的訪問(wèn)權(quán)限

。A.受限制

B.保持不變

C.

受保護(hù)

D.

不受保護(hù)9.在公有派生情況下,有關(guān)派生類對(duì)象和基類對(duì)象的關(guān)系,不正確的表達(dá)是(A)A.派生類的對(duì)象可以賦給基類的對(duì)象B.派生類的對(duì)象可以初始化基類的引用C.派生類的對(duì)象可以直接訪問(wèn)基類中的成員D.派生類的對(duì)象的地址可以賦給指向基類的指針派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)*執(zhí)行派生類構(gòu)造函數(shù)的順序是:

①調(diào)用基類構(gòu)造函數(shù),初始化基類數(shù)據(jù)成員 ②調(diào)用子對(duì)象構(gòu)造函數(shù),初始化子對(duì)象數(shù)據(jù)成員 ③執(zhí)行派生類構(gòu)造函數(shù),初始化派生類數(shù)據(jù)成員執(zhí)行派生類析構(gòu)函數(shù)的順序是:

①調(diào)用派生類析構(gòu)函數(shù),清理派生類增加數(shù)據(jù)成員 ②調(diào)用子對(duì)象析構(gòu)函數(shù),清理子對(duì)象數(shù)據(jù)成員 ③調(diào)用基類析造函數(shù),清理基類數(shù)據(jù)成員構(gòu)造函數(shù)和析構(gòu)函數(shù)次序例題#include<iostream>usingnamecpacestd;classB1 //基類B1聲明{public:B1(inti){cout<<"constructingB1"<<i<<endl;}~B1(){cout<<"destructingB1"<<endl;}};classB2 //基類B2聲明{public:B2(intj){cout<<"constructingB2"<<j<<endl;} ~B2(){cout<<"destructingB2"<<endl;} };classB3 //基類B3聲明{public:B3(){cout<<"constructingB3*"<<endl;}~B3(){cout<<"destructingB3"<<endl;} };classC:publicB2,publicB1,publicB3 {public: C(inta,intb,intc,intd):B1(a),memberB2(d),memberB1(c),B2(b){}private: B1memberB1; B2memberB2; B3memberB3;};voidmain(){ Cobj(1,2,3,4);}constructingB22constructingB11constructingB3*constructingB13constructingB24constructingB3*destructingB3destructingB2destructingB1destructingB3destructingB1destructingB2派生類構(gòu)造函數(shù)一般形式:派生類名::派生類名(總參數(shù)表):

基類名(實(shí)參表),

子對(duì)象名(參數(shù)表){

派生類新增成員的初始化語(yǔ)句; }多層派生時(shí)的構(gòu)造函數(shù)

P172例5.7派生類的析構(gòu)函數(shù)與構(gòu)造函數(shù)一樣,不能繼承基類的。派生類例題類A與類B都有public數(shù)據(jù)成員f,類C公有繼承A和B,類C有public數(shù)據(jù)成員f,類D保護(hù)繼承C,d是類D的一個(gè)對(duì)象,從d訪問(wèn)類A的成員f的表達(dá)式是

。d.A::f

多重繼承定義:

classD:publicA,privateB,protectedC{類D新增加的成員}多重繼承派生類的構(gòu)造函數(shù)派生類構(gòu)造函數(shù)名(總參數(shù)表):基類1構(gòu)造函數(shù)(參數(shù)表),基類2構(gòu)造函數(shù)(參數(shù)表),基類3構(gòu)造函數(shù)(參數(shù)表){派生類新增成員初始化語(yǔ)句}P176例5.8多重繼承的二義性在多重繼承時(shí),基類與派生類之間,或基類之間出現(xiàn)同名成員時(shí),將出現(xiàn)訪問(wèn)時(shí)的二義性〔不確定性〕——采用同名隱藏規(guī)那么或虛函數(shù)〔僅針對(duì)成員函數(shù)〕來(lái)解決。當(dāng)派生類從多個(gè)基類派生,而這些基類又從同一個(gè)基類派生,那么在訪問(wèn)此共同基類中的成員時(shí),將產(chǎn)生二義性——采用虛基類來(lái)解決。inta;inta;inta;虛基類*

P185例5.9classA{……};classB:virtualpublicA{……};classC:virtualpublicA{……};基類與派生類轉(zhuǎn)換*大材小用第6章復(fù)習(xí)要點(diǎn)一個(gè)接口,多種方法多態(tài)性的概念靜態(tài)多態(tài)在編譯程序時(shí)系統(tǒng)就可以確定調(diào)用哪個(gè)函數(shù),因此靜態(tài)多態(tài)性又稱編譯時(shí)的多態(tài)性。靜態(tài)多態(tài)性是通過(guò)函數(shù)重載實(shí)現(xiàn)的。動(dòng)態(tài)多態(tài)在程序運(yùn)行中才能確定操作所針對(duì)的對(duì)象。它又稱運(yùn)行時(shí)的多態(tài)性。動(dòng)態(tài)多態(tài)性是通過(guò)基類與派生類轉(zhuǎn)換+虛函數(shù)實(shí)現(xiàn)的。多態(tài)性例題C++語(yǔ)言中的多態(tài)性分為

時(shí)多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯

虛函數(shù)*虛函數(shù)是一個(gè)類的成員函數(shù),定義格式如下:virtual返回類型函數(shù)名〔參數(shù)表〕;關(guān)鍵字virtual指明該成員函數(shù)為虛函數(shù)。virtual僅用于類定義中,如虛函數(shù)在類外定義,不可加virtual。當(dāng)某一個(gè)類的一個(gè)類成員函數(shù)被定義為虛函數(shù),那么由該類派生出來(lái)的所有派生類中,該函數(shù)始終保持虛函數(shù)的特征。當(dāng)在派生類中重新定義虛函數(shù)〔overridingavirtualfunction,亦譯作超載或覆蓋〕時(shí),不必加關(guān)鍵字virtual。但重新定義時(shí)不僅要同名,而且它的參數(shù)表和返回類型全部與基類中的虛函數(shù)一樣,否那么聯(lián)編時(shí)出錯(cuò)。虛函數(shù)與改造類成員,同名覆蓋〔override〕有關(guān):如未加關(guān)鍵字virtual,那么是普通的派生類中的新成員函數(shù)覆蓋基類同名成員函數(shù)〔當(dāng)然參數(shù)表必須一樣,否那么是重載〕,可稱為同名覆蓋函數(shù),它不能實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性。比較有虛函數(shù)的override和無(wú)虛函數(shù)的override,訪問(wèn)成員#include<iostream.h>

classB0

{public:

voiddisplay()

{

cout<<"B0::display()"<<endl;

}

};

classB1:publicB0

{public:

voiddisplay()

{

cout<<"B1::display()"<<endl;

}

};

classD1:publicB1

{public:

voiddisplay()

{

cout<<"D1::display()"<<endl;

}

};

voidfun(B0*ptr)

{

ptr->display();}

voidmain()

{

B0b0;

B1b1;

D1d1;

B0*p;

p=&b0;

fun(p);

p=&b1;

fun(p);

p=&d1;

fun(p);

}

B0::display()

B0::display()

B0::display()

#include<iostream.h>

classB0

{public:

virtualvoiddisplay()

{

cout<<"B0::display()"<<endl;

}

};

classB1:publicB0

{public:

voiddisplay()

{

cout<<"B1::display()"<<endl;

}

};

classD1:publicB1

{public:

voiddisplay()

{

cout<<"D1::display()"<<endl;

}

};

voidfun(B0*ptr)

{

ptr->display();}

voidmain()

{

B0b0;

B1

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論