版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 第11章 友元與運算符重載目的與要求11.1 友元函數(shù)11.2 運算符重載11.3 多態(tài)性與虛函數(shù)11.4 類與對象的特性本章小結(jié)目的與要求 通過本章的學(xué)習(xí),應(yīng)理解友元的概念,掌握將普通函數(shù)定義為類友元函數(shù)的方法。理解運算符重載的概念,掌握運算符重載函數(shù)的定義方法、調(diào)用過程及實際應(yīng)用。掌握多態(tài)性技術(shù)的概念及實現(xiàn)方法。了解虛函數(shù)與純虛函數(shù)的概念、定義格式及使用方法。11.1 友元函數(shù) 友元函數(shù)定義:友元函數(shù)是能在類外訪問類中的任何成員的函數(shù)。 友元函數(shù)可以是普通函數(shù),也可以是某個類的成員函數(shù),甚至可以將某個類說明成另一個類的友元。 11.1.1 定義普通函數(shù)為友元函數(shù) 在定義一個類時,若在類中
2、用關(guān)鍵詞friend修飾普通函數(shù),則該普通函數(shù)就成為該類的友元函數(shù),它可以訪問該類中所有的成員。 定義普通友元函數(shù)的格式為: friend (形參表); 【例11.1】用友元函數(shù)的方法求長方體的體積。例程友元函數(shù)的說明:(1)友元函數(shù)不是類的成員函數(shù),它不帶this指針。所以必須用對象或?qū)ο蟮囊米鳛橛言瘮?shù)的形參,并在函數(shù)體內(nèi)使用運算符“.”來訪問對象的成員(2)友元函數(shù)必須在類內(nèi)進行函數(shù)原型說明,函數(shù)定義部分寫在類外。(3)友元函數(shù)與一般函數(shù)的區(qū)別: 友元函數(shù)可訪問類內(nèi)的任一數(shù)據(jù)成員或成員函數(shù); 一般函數(shù)只能訪問類的公有數(shù)據(jù)成員或公有成員函數(shù)。(4)由于友元函數(shù)不是類的成員函數(shù),所以類的訪
3、問權(quán)限對友元函數(shù)不起作用。 (5)友元函數(shù)可使用類內(nèi)的所有成員,破壞了數(shù)據(jù)的安全性,使用友元函數(shù)必須謹慎。 11.1.2 友元注意事項(1)友元關(guān)系是不傳遞的(2)友元關(guān)系不具有交換性(3)友元關(guān)系是不能繼承的 11.2 運算符重載11.2.1 運算符重載的概念 1引例 用“+”運算符完成兩個實數(shù)、兩個復(fù)數(shù)、兩個字符串的相關(guān)運算。(1)實數(shù)。設(shè):c1=10 ,c2=20,則:c1+c2=10+20=30。(2)復(fù)數(shù)。設(shè):c1=10+10i,c2=20+20i,則: c1+c2=30+30i 。(3)字符串。設(shè):c1=“ABCD”,c2=“EFGH” ,則c1+c2=ABCDEFGH“ 這就是“
4、+”運算符的重載。運算符重載的概念2運算符重載 所謂運算符重載就是用同一個運算符完成不同的運算操作。 3運算符重載函數(shù) 運算符重載是通過運算符重載函數(shù)來完成的。 運算符重載函數(shù)分一元運算符重載函數(shù)為友元函數(shù)、一元運算符重載函數(shù)為成員函數(shù)、二元運算符重載函數(shù)為友元函數(shù)、二元運算符重載函數(shù)為成員函數(shù)四種情況。11.2.2 二元運算符重載 1.運算符重載函數(shù)為友元函數(shù)(1)重載函數(shù)的定義格式 (形參1,形參2) 函數(shù)體 其中,重載函數(shù)名為,形參1與形參2常為參加運算的兩個對象的引用。 當(dāng)重載函數(shù)為友元普通函數(shù)時,該重載函數(shù)不能用對象調(diào)用,因此參加運算的兩個對象必須以形參方式傳送到重載函數(shù)體內(nèi),所以形
5、參通常為兩個參加運算的對象。運算符重載函數(shù)為友元函數(shù)(2)重載函數(shù)的調(diào)用格式 (實參1,實參2); 其中實參1,實參2分別是重載運算符的左操作數(shù)和右操作數(shù)。 注意,在進行兩個對象的二元運算時,其程序中所用到的語法格式為: ; 如c1+c2。 而執(zhí)行上述語句時,系統(tǒng)將自動轉(zhuǎn)換成對重載函數(shù)的調(diào)用格式: (左操作數(shù),右操作數(shù)); 如operator+(c1,c2); 【例11.2】定義一個復(fù)數(shù)類 ,用友元函數(shù)重載“+”運算符,使這個運算符能直接完成兩個復(fù)數(shù)的加法運算,以及一個復(fù)數(shù)與一個實數(shù)的加法運算。 例程運算符重載函數(shù)為類的友元函數(shù)說明(3)對于運算符重載,必須說明以下幾點: 運算符重載函數(shù)名必須
6、為:operator 運算符的重載是通過調(diào)用運算符重載函數(shù)實現(xiàn)的。調(diào)用函數(shù)時,左操作數(shù)為重載函數(shù)的第一個實參,右操作數(shù)作為函數(shù)的第二個實參。 形參說明。若重載函數(shù)為友元函數(shù),則參數(shù)通常為兩個,即左操作數(shù)和右操作數(shù)。 運算符重載函數(shù)的返回類型。若二個同類對象進行二元運算后的結(jié)果類型仍為原類型,則運算符重載函數(shù)的返回類型應(yīng)為原類型。 C+中允許重載的運算符(4)C+中允許重載的運算符如下表所示。+*/%&|!,=+= =!=&|+= =*=/=%=&=! = ( ) * newdeleteC+中不允許重載的運算符運算符運算符的含義不允許重載的原因?:三目運算符 在C+中沒有
7、定義一個三目運算符的語法 成員操作符為保證成員操作符對成員訪問的安全性,故不允許重載*成員指針操作符同上:作用域運算符因該操作符左邊的操作數(shù)是一個類型名,而不是一個表達式sizeof 求字節(jié)數(shù)操作符其操作數(shù)是一個類型名,而不是一個表達式(5)C+中不允許重載的運算符如下表所示。 2.運算符重載函數(shù)為類的成員函數(shù)(1)重載函數(shù)的定義格式 :(形參) 函數(shù)體 其中,類型為重載函數(shù)的返回類型。 類名為成員函數(shù)所屬類的類名。 operator為重載函數(shù)名,即:=。 形參常為參加運算的對象或數(shù)據(jù)。運算符重載函數(shù)為類的成員函數(shù) (2)重載函數(shù)的調(diào)用格式 .(實參表); 注意:在進行兩個對象的二元運算時,其
8、程序中所用到語法格式為: ; 如:c1+c2 而執(zhí)行上述語句時,系統(tǒng)將自動轉(zhuǎn)換成對重載函數(shù)的調(diào)用格式: .(右操作數(shù)); 如c1.operator+(c2); 【例11.3】用成員運算符重載函數(shù)實現(xiàn)例11.2中復(fù)數(shù)的加法運算。 例程成員函數(shù)與友元函數(shù)作為重載函數(shù)的差別(3)成員函數(shù)與友元函數(shù)作為重載函數(shù)的差別: 用成員函數(shù)與友元函數(shù)作為運算符重載函數(shù),就運算符的使用來講是一樣,但編譯器處理方法是不同的。 當(dāng)重載函數(shù)為成員函數(shù)時,二元運算符的左操作數(shù)為調(diào)用重載函數(shù)的對象。右操作數(shù)為實參。當(dāng)重載函數(shù)為友元函數(shù)時,二元運算符的左操作數(shù)為調(diào)用重載函數(shù)的第一個實參。右操作數(shù)為第二個實參。 11.2.3
9、一元運算符重載 1.一元運算符重載函數(shù)為友元函數(shù)(1)重載函數(shù)定義格式 operator (形參) 函數(shù)體 對典型一元運算符“+”分前置與后置進行討論。 前置“+”運算符重載函數(shù)定義格式: operator+ ( 類名 & ) 函數(shù)體 后置“+”運算符重載函數(shù)定義格式: operator + ( 類名 & ,int ) 函數(shù)體 其中,int 只是用于區(qū)分是前置還是后置運算符,并無實際意義。一元運算符重載函數(shù)為友元函數(shù) (2)重載函數(shù)調(diào)用格式前置“+”運算符重載函數(shù)調(diào)用格式: operator +();后置“+”運算符重載函數(shù)的調(diào)用格式: operator +(,1);【例11.
10、4】定義一個描述時間計數(shù)器的類,其三個數(shù)據(jù)成員分別用于存放:時、分和秒。用友元函數(shù)重載“+”運算符,實現(xiàn)計數(shù)器對象的加1運算。 例程2.一元運算符重載函數(shù)為成員函數(shù)(1)重載函數(shù)的定義格式: :operator (形參) 函數(shù)體對典型一元運算符“+”分前置與后置進行討論。 “+”為前置運算符,重載函數(shù)定義格式: :operator +( ) 函數(shù)體 “+”為后置運算符,重載函數(shù)定義格式: :operator +( int ) 函數(shù)體一元運算符重載函數(shù)為成員函數(shù)(2)重載函數(shù)的調(diào)用格式 前置“+”運算符,重載函數(shù)調(diào)用格式: .operator +( ); 后置“+”運算符,重載函數(shù)調(diào)用格式: .
11、operator +(1); 【例11.5】定義一個描述時間計數(shù)器的類,其三個數(shù)據(jù)成員分別用于存放:時、分和秒。用成員函數(shù)重載“+”運算符,實現(xiàn)計數(shù)器對象的加1運算。例程11.2.4 字符串類運算符重載 舉例說明字符串運算符重載函數(shù)的定義與調(diào)用方法,及重載后字符串運算符的使用方法。 【例11.6】編寫字符串運算符“”的重載函數(shù),使運算符“”能完成兩個字符串的比較運算,實現(xiàn)字符串直接比較。分別用成員函數(shù)與友元函數(shù)編寫重載函數(shù)。 例程11.3 多態(tài)性與虛函數(shù)11.3.1 多態(tài)性技術(shù)1.多態(tài)性技術(shù)的概念 (1)多態(tài)性技術(shù):調(diào)用同名函數(shù)完成不同的函數(shù)功能,或使用同名運算符完成不同的運算功能。 (2)多
12、態(tài)性常用重載技術(shù)與虛函數(shù)來實現(xiàn)。 (3)多態(tài)性分為兩類:編譯時的多態(tài)性和運行時的多態(tài)性。 多態(tài)性技術(shù)2編譯時的多態(tài)性 通過函數(shù)的重載或運算符的重載來實現(xiàn)的。也稱靜態(tài)多態(tài)性。 3運行時的多態(tài)性 運行時的多態(tài)性也稱為動態(tài)多態(tài)性,運行時的多態(tài)性是指在程序執(zhí)行前,根據(jù)函數(shù)名和參數(shù)無法確定應(yīng)該調(diào)用哪一個函數(shù),必須在程序執(zhí)行過程中,根據(jù)具體執(zhí)行情況來動態(tài)地確定。 運行時的多態(tài)性是通過類的繼承關(guān)系和虛函數(shù)來實現(xiàn)的。11.3.2 虛函數(shù)1虛函數(shù)概念 在基類中用關(guān)鍵字 virtual修飾的成員函數(shù)稱為虛函數(shù)。2虛函數(shù)定義格式 virtual (參數(shù)) 函數(shù)體3用虛函數(shù)實現(xiàn)動態(tài)多態(tài)性的方法(1)在基類中定義虛函數(shù)
13、(2)在派生類中定義與基類虛函數(shù)同名、同參數(shù)、同返回類型的成員函數(shù),即派生類中的虛函數(shù)。(3)在主函數(shù)中操作步驟: 用基類定義指針變量。 將基類對象地址或派生類對象地址賦給該指針變量。 用 (實參);方式去調(diào)用基類或派生類中的虛函數(shù)。用虛函數(shù)實現(xiàn)動態(tài)多態(tài)性舉例 【例11.7】定義基類High,數(shù)據(jù)成員為高H,定義成員函數(shù)Show()為虛函數(shù)。然后再由High派生出長方體類Cuboid與圓柱體類Cylinder。并在兩個派生類中定義成員函數(shù)Show()為虛函數(shù)。在主函數(shù)中,用基類High定義指針變量p,然后用指針p動態(tài)調(diào)用基類與派生類中虛函數(shù)Show(),顯示長方體與圓柱體的體積。 關(guān)于虛函數(shù)有
14、幾點說明: (1)派生類虛函數(shù)必須與基類虛函數(shù)同名、同參數(shù)、同返回類型。 (2)實現(xiàn)動態(tài)的多態(tài)性時,必須使用基類類型的指針變量,使該指針指向不同派生類的對象,并通過調(diào)用指針所指向的虛函數(shù)才能實現(xiàn)動態(tài)的多態(tài)性。例程虛函數(shù)的說明(3)虛函數(shù)必須是類的一個成員函數(shù),不能是友元函數(shù),也不能是靜態(tài)的成員函數(shù)。(4)若派生類中沒有定義虛函數(shù),將派生類對象地址賦給基類定義的指針變量后,用指針變量虛函數(shù)(實參);方式去調(diào)用虛函數(shù)時,調(diào)用的虛函數(shù)是基類的虛函數(shù)。 (5)可將析構(gòu)函數(shù)定義為虛函數(shù),但不能將構(gòu)造函數(shù)定義為虛函數(shù)。(6)虛函數(shù)與一般函數(shù)相比較,調(diào)用時執(zhí)行速度要慢一些。為了實現(xiàn)多態(tài)性。在每一個派生類中均
15、要保持相應(yīng)虛函數(shù)的入口地址表,函數(shù)調(diào)用機制也是間接實現(xiàn)的。11.3.3 純虛函數(shù) 1.純虛函數(shù)的概念 在定義一個基類時,若無法定義基類中虛函數(shù)的具體操作,虛函數(shù)的具體操作完全取決于其不同的派生類。這時,可將基類中的虛函數(shù)定義為純虛函數(shù)。 2.純虛函數(shù)定義格式: virtual (形參表)=0; 3.純虛函數(shù)特點:(1)純虛函數(shù)無函數(shù)體,在派生類中沒有重新定義純虛函數(shù)之前,不能調(diào)用該函數(shù)。(2)將函數(shù)名賦值為0的含義是,將指向函數(shù)體的指針值賦初值0。純虛函數(shù)特點(3)將至少包含一個純虛函數(shù)的類稱為抽象類。這種類只能作為派生類的基類,不能用來說明對象。 【例11.8】定義抽象基類High,數(shù)據(jù)成員
16、為高H,定義Show()為純虛函數(shù)。然后再由High派生出長方體類Cuboid與圓柱體類Cylinder。并在兩個派生類中重新定義虛函數(shù)Show()。在主函數(shù)中,用基類High定義指針變量p,然后用指針p動態(tài)調(diào)用派生類中虛函數(shù)Show(),顯示長方體與圓柱體的體積。(4)在以抽象類作為基類的派生類中必須有純虛函數(shù)的實現(xiàn)部分,即必須有重載純虛函數(shù)的函數(shù)體。否則,這樣的派生類也是不能產(chǎn)生對象的。 例程11.4 類與對象的特性1.封裝性2.派生與繼承性3.多態(tài)性4.對象的消息機制本章小結(jié)1.友元 為了能在類外直接使用類的私有成員或保護成員,C+提供了友元。將普通函數(shù)定義為某類的友元函數(shù)的方法,是在該
17、類中增加用freind修飾的普通函數(shù)原型說明: friend (形參); 此時,可在 中使用類的私有成員或保護成員。2.運算符重載 運算符重載是指用同一運算符完成不同的運算操作。 運算符重載是通過運算符重載函數(shù)來實現(xiàn)的。 運算符重載函數(shù)分為一元運算符重載函數(shù)和二元運算符重載函數(shù)。 運算符重載函數(shù)可通過成員函數(shù)或友元函數(shù)來實現(xiàn)。 (1)二元運算符重載函數(shù) 用友元函數(shù)重載運算符 重載函數(shù)作為普通友元函數(shù)一般應(yīng)寫在類外。在類中作引用性說明: friend (形參1,形參2) 函數(shù)體 在執(zhí)行運算符操作時,編譯器將對運算符的操作解釋為對運算符友元重載函數(shù)的調(diào)用,并將運算符左、右操作數(shù)作為調(diào)用友元重載函數(shù)
18、的實參。即友元重載函數(shù)的調(diào)用形式為: (左操作對象,右操作對象); 二元運算符重載函數(shù)用成員函數(shù)重載運算符: :(形參) 函數(shù)體 在執(zhí)行運算符操作時,編譯器將對運算符的操作解釋為對運算符成員重載函數(shù)的調(diào)用,并將運算符左操作數(shù)作為調(diào)用重載函數(shù)的對象,右操作數(shù)作為重載函數(shù)的實參。即重載成員函數(shù)的調(diào)用形式為: .(右操作數(shù)); (2)一元運算符重載函數(shù) 用成員函數(shù)重載“+”運算符前置+::()后置+::(int)用友元函數(shù)重載“+”運算符前置+:friend ( 類名 &)后置+:friend (類名&,int) 其中形參中的int 只用于區(qū)別前置+重載函數(shù),還是后置+重載函數(shù),并無
19、整型參數(shù)的含義。對于前置+成員函數(shù),必須用this指針返回自加結(jié)果。 (3)字符串運算符重載函數(shù) 使用字符串運算符重載函數(shù),可使字符串拷貝、拼接、比較等操作直接用字符串運算符“=”、“+”、“”、“”來進行。字符串常進行二元運算,其重載函數(shù)的定義格式與二元運算符重載函數(shù)相同。3.多態(tài)性技術(shù) 多態(tài)性技術(shù)是指調(diào)用同名函數(shù)完成不同的函數(shù)功能,或使用同名運算符完成不同的運算功能。它常用重載函數(shù)與虛函數(shù)來實現(xiàn)。 函數(shù)重載或運算符重載均屬于編譯時的多態(tài)性,而虛函數(shù)則屬于運行時的多態(tài)性。 4.虛函數(shù) 在基類中用關(guān)鍵字 virtual修飾的成員函數(shù)稱為虛函數(shù),定義格式為: virtual (參數(shù)) 函數(shù)體 用
20、虛函數(shù)實現(xiàn)“運行時的多態(tài)性”的方法是:在派生類中定義與基類虛函數(shù)同名、同參數(shù)、同返回類型的虛函數(shù),用基類定義指針變量p,將基類或派生類對象的地址賦給p(即p=&對象)后,用p-虛函數(shù),則可實現(xiàn)“運行時的多態(tài)性”。 5.純虛函數(shù) 將函數(shù)名賦0值且無函數(shù)體的虛函數(shù)稱為純虛函數(shù),定義格式為: virtual (參數(shù))=0; 含有純虛函數(shù)的類稱為抽象類,不能用抽象類定義對象。因為純虛函數(shù)無函數(shù)體,所以純虛函數(shù)不能調(diào)用,因此必須在派生類中重新定義虛函數(shù)。 6本章重點和難點重點重點:友元、運算符重載與多態(tài)性技術(shù)的概念,友元函數(shù)的定義方法,運算符重載函數(shù)的定義與使用方式。難點:難點:運算符重載的調(diào)用
21、過程,虛函數(shù)的概念、定義格式及使用方法。例11.1# include class Cuboid private: float Length,Width,High; public: Cuboid(float l,float w,float h) /構(gòu)造函數(shù) Length=l;Width=w; High=h; friend float Volume(Cuboid &); /將普通函數(shù)定義為友元函數(shù); /以便使用類中私有數(shù)據(jù) float Volume(Cuboid &c) /求體積的普通函數(shù) return c.Length*c.Width*c.High;void main (void
22、) Cuboid c(10,20,30); /定義對象c,并初始化 cout長方體積=Volume(c)endl; /調(diào)用友元函數(shù)求體積返回返回例11.2(1)# include class Complex private: float Real,Image; public: Complex(float r=0,float i=0) Real=r;Image=i; void Show(int i) coutci= Real+Imageiendl; friend Complex operator + (Complex & ,Complex &); /“+”重載函數(shù)為友元函數(shù) fr
23、iend Complex operator + (Complex &,float); ; 例11.2(2)Complex operator + (Complex &c1, Complex &c2)/普通函數(shù) Complex t; t.Real=c1.Real+c2.Real; t.Image=c1.Image+c2.Image; return t; Complex operator + (Complex &c,float s) Complex t; t.Real=c.Real+s; t.Image=c.Image; return t; 例11.2(3)void
24、main(void) Complex c1(25,50),c2(100,200),c3; c1.Show(1); c2.Show(2); c3=c1+c2; /c3=(25+50i)+(100+200i)=125+250i c3.Show(3); c1=c1+200; /c1=25+50i+200=225+50i c1.Show(1); 返回返回例11.3(1)# include class Complex private: float Real,Image; public: Complex(float r=0,float i=0) Real=r;Image=i; void Show(int
25、i) coutci= Real+Imageiendl; Complex operator + (Complex &); Complex operator + (float); ; Complex Complex:operator + (Complex &c) Complex t; t.Real=Real+c1.Real; t.Image=Image+c1.Image; return t; 例11.3(2) Complex Complex :operator + (float s) Complex t; t.Real=Real+s; t.Image=Image; return t
26、; void main(void) Complex c1(25,50),c2(100,200),c3; c1.Show(1); c2.Show(2); c3=c1+c2; /c3=(25+50i)+(100+200i)=125+250i c3.Show(3); c1=c1+200; /c1=25+50i+200=225+50i c1.Show(1); 返回返回例11.4(1)# include class TCount private: int Hour,Minute,Second; public: TCount() Hour=Minute=Second=0; TCount (int h,in
27、t m,int s) Hour=h;Minute=m;Second=s; friend TCount &operator +(TCount &t ); /“前置+”運算符重載友元函數(shù) friend TCount operator +( TCount &t ,int ); /“后置+”運算符重載友元函數(shù) void Show(int i ) coutti=Hour:Minute:Secondendl;例11.4(2)TCount &operator + (TCount & t) /定義“前置+”重載友元函數(shù) t.Second+; /計數(shù)器對象t的秒加1 if
28、 (t.Second=60) /秒單元滿60,清0,分單元加1 t.Second=0; t.Minute+; if (t.Minute=60) /分單元滿60,清0,時單元加1 t.Minute=0; t.Hour+; if (t.Hour=24) /時單元滿24,清0 t.Hour=0; return t; /返回自加后的對象t例11.4(3)TCount operator+ (TCount & t,int ) /定義“后置+”重載友元函數(shù) TCount temp=t;/用臨時對象temp存放加1前的t值 t.Second+;/對秒、分、時單元的加1操作 if (t.Second=6
29、0) t.Second=0; t.Minute+; if (t.Minute=60) t.Minute=0; t.Hour+; if (t.Hour=24) t.Hour=0; return temp;/返回加1前的t值例11.4(4)void main(void) TCount t1(10,25,50),t2,t3; /t1=10:25:50 t1.Show(1); t2=+t1; /先加后用 t1.Show(1); t2.Show(2); t3=t1+; /先用后加 t1.Show(1); t3.Show(3); 返回返回例11.5(1)# include class TCount /定義
30、計數(shù)器類TCount private: int Hour,Minute,Second;/數(shù)據(jù)成員時、分、秒 public: TCount (int h=0,int m=0,int s=0)/定義默認值為0的構(gòu)造函數(shù) Hour=h;Minute=m;Second=s; TCount operator +( );/定義“前置+”運算符重載成員函數(shù) TCount operator +( int ); /定義“后置+”運算符重載成員函數(shù) void Show(int i ) /定義顯示時:分:秒的成員函數(shù) coutti=Hour:Minute:Secondendl;例11.5(2)TCount TCou
31、nt :operator + () /定義“前置+”運算符重載函數(shù)(無形參) Second+;/秒單元加1 if (Second=60) /秒單元滿60,清0后,分單元加1 Second=0; Minute+; if (Minute=60)/分單元滿60后,清0后,時單元加1 Minute=0; Hour+; if (Hour=24)/時單元滿24,清0 Hour=0; return *this;例11.5(3)TCount TCount:operator+ (int ) /定義“后置+”運算符重載函數(shù)(有int) TCount temp=*this; Second+; if (Second=
32、60) Second=0; Minute+; if (Minute=60) Minute=0; Hour+; if (Hour=24) Hour=0; return temp;例11.5(4)void main(void) TCount t1(10,25,50),t2,t3; /定義時間計數(shù)器對象t1=10:25:50 t1.Show(1); t2=+t1; /先加后用,即:先將t1自加,然后將t1賦給t2 t1.Show(1); t2.Show(2); t3=t1+; /先用后加,即:先將t1賦給t3,然后將t1自加 t1.Show(1); t3.Show(3);返回返回例11.6(1)#
33、include # include class String/定義字符串類 private: int Length; char *Sp; public: String(char *s) /定義有參構(gòu)造函數(shù) Length=strlen(s); Sp=new charLength +1; strcpy(Sp,s); 例11.6(2)String() /定義析構(gòu)函數(shù) if (Sp) delete Sp; void Show() /定義顯示字符串函數(shù) coutSp(String &s) if (strcmp(Sp,s.Sp)0) return 1; else return 0; ;例11.6(3)void main (void) String s1(software),s2(hardware); s1.Show(); s2.Show(); if (s1s2) couts2endl; else couts1s2endl;返回返回例11.7(1)# include class High protected: float H; public: High(float h) H=h; virtual void Show()/在基類中定義虛函數(shù)Show()
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版勞動合同延期與員工離職證明協(xié)議3篇
- 2025年退場協(xié)議與合同終止協(xié)議書:地質(zhì)礦產(chǎn)開發(fā)企業(yè)適用指南3篇
- 二零二五版汽車租賃押金退還協(xié)議合同4篇
- 二零二五年度租賃房屋水電費及社區(qū)綠化養(yǎng)護補充協(xié)議3篇
- 二零二四年城市地標性建筑墻體廣告租賃協(xié)議書3篇
- 臨時駕駛員聘用協(xié)議范本2024版
- 2025年度煤炭深加工項目技術(shù)合作合同4篇
- 個人教育貸款合同(2024版)版B版
- 2025年度數(shù)據(jù)中心機房裝修與恒溫恒濕系統(tǒng)施工合同4篇
- 二零二五年度廢鐵加工企業(yè)生產(chǎn)合作協(xié)議4篇
- 2024-2025學(xué)年成都高新區(qū)七上數(shù)學(xué)期末考試試卷【含答案】
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價格水平調(diào)整的通知
- 2025年浙江杭州市西湖區(qū)專職社區(qū)招聘85人歷年高頻重點提升(共500題)附帶答案詳解
- 《數(shù)學(xué)廣角-優(yōu)化》說課稿-2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
- “懂你”(原題+解題+范文+話題+技巧+閱讀類素材)-2025年中考語文一輪復(fù)習(xí)之寫作
- 2025年景觀照明項目可行性分析報告
- 2025年江蘇南京地鐵集團招聘筆試參考題庫含答案解析
- 2025年度愛讀書學(xué)長參與的讀書項目投資合同
- 電力系統(tǒng)分析答案(吳俊勇)(已修訂)
- 化學(xué)-河北省金太陽質(zhì)檢聯(lián)盟2024-2025學(xué)年高三上學(xué)期12月第三次聯(lián)考試題和答案
- 期末復(fù)習(xí)試題(試題)-2024-2025學(xué)年四年級上冊數(shù)學(xué) 北師大版
評論
0/150
提交評論