版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+高級(jí)程序設(shè)計(jì)高級(jí)程序設(shè)計(jì)第7章 多態(tài)性第第7 7章章 多態(tài)性多態(tài)性l 多態(tài)性(Polymorphism)是面向?qū)ο蟪绦蛟O(shè)計(jì)的重要特性之一。l 多態(tài)是指為一個(gè)函數(shù)名稱關(guān)聯(lián)多種含義的能力,它不僅提高了面向?qū)ο筌浖O(shè)計(jì)的靈活性,而且使得設(shè)計(jì)和實(shí)現(xiàn)具有良好的可重用性和可擴(kuò)充性的應(yīng)用軟件成為可能。l 本章主要介紹動(dòng)態(tài)綁定、虛函數(shù)、抽象類等重要的概念和實(shí)現(xiàn)方法。 7.1 7.1 面向?qū)ο缶幊堂嫦驅(qū)ο缶幊潭鄳B(tài)多態(tài) 7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定 7.3 7.3 純虛函數(shù)與抽象類純虛函數(shù)與抽象類7.4 7.4 案例實(shí)訓(xùn)案例實(shí)訓(xùn) 第第7 7章章 多態(tài)性多態(tài)性7.1 7.1 面向?qū)ο缶幊堂嫦?/p>
2、對(duì)象編程多態(tài)多態(tài) 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,多態(tài)性是指同樣的消息被不同類型的對(duì)象接收時(shí)會(huì)產(chǎn)生完全不同的行為,即每個(gè)對(duì)象可以用自己特有的方式響應(yīng)相同的消息。這里的消息是指對(duì)函數(shù)的調(diào)用,不同的行為是指不同的實(shí)現(xiàn),即執(zhí)行不同的函數(shù)。 從程序?qū)崿F(xiàn)的角度,多態(tài)可分為兩類:編譯時(shí)的多態(tài)和運(yùn)行時(shí)的多態(tài)。編譯時(shí)的多態(tài)性是通過(guò)靜態(tài)綁定實(shí)現(xiàn)的,而運(yùn)行時(shí)的多態(tài)性則是在程序運(yùn)行過(guò)程中通過(guò)動(dòng)態(tài)綁定實(shí)現(xiàn)的。這里的綁定(Binding,又稱聯(lián)編)是指函數(shù)調(diào)用與執(zhí)行代碼之間關(guān)聯(lián)的過(guò)程。 l 靜態(tài)綁定(Static Binding)是在程序的編譯與連接時(shí)就已確定函數(shù)調(diào)用和執(zhí)行該調(diào)用的函數(shù)之間的關(guān)聯(lián)。在生成的可執(zhí)行文件中,函數(shù)調(diào)用所
3、關(guān)聯(lián)執(zhí)行的代碼是已確定的,因此靜態(tài)綁定也稱為早綁定(Early Binding)。前面介紹的函數(shù)重載(含運(yùn)算符重載)就屬于編譯時(shí)的多態(tài)。l 動(dòng)態(tài)綁定(Dynamic Binding)是在程序運(yùn)行時(shí)根據(jù)具體情況才能確定函數(shù)調(diào)用所關(guān)聯(lián)的執(zhí)行代碼,因而也稱為晚綁定(Late Binding)。動(dòng)態(tài)綁定所支持的多態(tài)性能為程序設(shè)計(jì)帶來(lái)良好的靈活性、可重用性和可擴(kuò)充性。在C+中,通常意義上所說(shuō)的多態(tài)性是指動(dòng)態(tài)多態(tài)性。l在C+中,動(dòng)態(tài)多態(tài)性的實(shí)現(xiàn)方法是在同一個(gè)類的繼承層次結(jié)構(gòu)中通過(guò)定義虛函數(shù)虛函數(shù)(Virtual Function)實(shí)現(xiàn)。 7.1 7.1 面向?qū)ο缶幊堂嫦驅(qū)ο缶幊潭鄳B(tài)多態(tài) 7.1 7.1 面
4、向?qū)ο缶幊堂嫦驅(qū)ο缶幊潭鄳B(tài)多態(tài)設(shè)計(jì)平面與立體幾何形處理程序,類的層次結(jié)構(gòu)如圖所示。幾何形類為基類,其中定義了求面積和體積的成員函數(shù)。在派生類中,根據(jù)幾何形特征,分別重新定義相應(yīng)函數(shù)以正確地求出相應(yīng)的面積和體積。7.1 7.1 面向?qū)ο缶幊堂嫦驅(qū)ο缶幊潭鄳B(tài)多態(tài) 在類的繼承中,重新定義同名且形參相同的成員函數(shù)稱為同名覆蓋?,F(xiàn)假設(shè)需要設(shè)計(jì)一個(gè)顯示函數(shù),其功能是顯示類層次結(jié)構(gòu)中所有類(包含還未定義的派生類)對(duì)象的面積和體積等信息,該函數(shù)需要能接收類層次結(jié)構(gòu)中的所有類的對(duì)象,故函數(shù)形參應(yīng)定義為幾何形類的指針(或引用)。由于該函數(shù)的形參是基類指針(或引用),從前一章的知識(shí)可知,若傳遞的實(shí)參為派生類對(duì)象,則
5、函數(shù)只能訪問(wèn)幾何形類的成員函數(shù)而不能訪問(wèn)派生類中的面積和體積函數(shù)。 C+的解決方法是將幾何形類中的面積和體積函數(shù)定義將幾何形類中的面積和體積函數(shù)定義為虛函數(shù)為虛函數(shù),程序在運(yùn)行時(shí)利用多態(tài)性能正確地調(diào)用與所傳遞對(duì)象對(duì)應(yīng)的計(jì)算面積和體積的成員函數(shù)。7.1 7.1 面向?qū)ο缶幊堂嫦驅(qū)ο缶幊潭鄳B(tài)多態(tài)l 在在C+C+中,當(dāng)通過(guò)基類指針中,當(dāng)通過(guò)基類指針( (或引用或引用) )請(qǐng)求調(diào)用虛函數(shù)時(shí),請(qǐng)求調(diào)用虛函數(shù)時(shí),C+C+程序會(huì)在運(yùn)行過(guò)程中正確地選擇與對(duì)象關(guān)聯(lián)的派生類中重定程序會(huì)在運(yùn)行過(guò)程中正確地選擇與對(duì)象關(guān)聯(lián)的派生類中重定義的虛函數(shù)。義的虛函數(shù)。l 幾何形類事實(shí)上是一個(gè)非常抽象的概念,其具體形狀未知,幾何
6、形類事實(shí)上是一個(gè)非常抽象的概念,其具體形狀未知,面積和體積無(wú)法計(jì)算,用其定義對(duì)象也無(wú)實(shí)際意義。這種類面積和體積無(wú)法計(jì)算,用其定義對(duì)象也無(wú)實(shí)際意義。這種類在面向?qū)ο蟪绦蛟O(shè)計(jì)中被稱為抽象類,其主要用途是為其他在面向?qū)ο蟪绦蛟O(shè)計(jì)中被稱為抽象類,其主要用途是為其他類提供合適的基類。類提供合適的基類。l 在抽象類中通常僅定義一些沒(méi)有實(shí)現(xiàn)的虛函數(shù)(接口),而在抽象類中通常僅定義一些沒(méi)有實(shí)現(xiàn)的虛函數(shù)(接口),而在其派生類中才實(shí)現(xiàn)各自對(duì)應(yīng)的函數(shù)。這就是所謂的在其派生類中才實(shí)現(xiàn)各自對(duì)應(yīng)的函數(shù)。這就是所謂的“單個(gè)單個(gè)接口,多種方法接口,多種方法”的軟件設(shè)計(jì)思想和技術(shù)。的軟件設(shè)計(jì)思想和技術(shù)。 類中的成員函數(shù)被聲明為
7、虛函數(shù)后,C+編譯器將對(duì)虛函數(shù)進(jìn)行特別處理以支持動(dòng)態(tài)綁定。本節(jié)在介紹虛函數(shù)的基本用法后,著重解析VC+中動(dòng)態(tài)綁定機(jī)制的實(shí)現(xiàn)方法,旨在從技術(shù)層面理解多態(tài)性的概念。7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定7.2.1 虛函數(shù)的定義和使用 虛函數(shù)的定義方法是用關(guān)鍵字virtual修飾類的成員函數(shù)。例如: virtual double area(); 在C+中,不是任何成員函數(shù)都能說(shuō)明為虛函數(shù),虛函數(shù)的使用需要注意以下幾點(diǎn):l 在派生類中重定義的虛函數(shù)要求函數(shù)簽名和返回值必須與基類虛函數(shù)完全一致,而關(guān)鍵字virtual可以省略。在類的層次結(jié)構(gòu)中,成員函數(shù)一旦在某個(gè)類中被聲明為虛函數(shù),那么在該類之
8、后派生出來(lái)的新類中它都是虛函數(shù)。l 虛函數(shù)不能是友元函數(shù)或靜態(tài)成員函數(shù)。7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定l 構(gòu)造函數(shù)不能是虛函數(shù),而析構(gòu)函數(shù)可以是虛函數(shù)。l 基類的虛函數(shù)在派生類中可以不重新定義。若在派生類中沒(méi)有重新改寫基類的虛函數(shù),則調(diào)用的仍然是基類的虛函數(shù)。l 通過(guò)類的對(duì)象調(diào)用虛函數(shù)僅屬于正常的成員函數(shù)調(diào)用,調(diào)用關(guān)系是在編譯時(shí)確定的,屬于靜態(tài)綁定。動(dòng)態(tài)綁定(動(dòng)態(tài)多態(tài)性)僅發(fā)生在使用基類指針或基類引用調(diào)用虛函數(shù)的過(guò)程中。【例7-1】設(shè)計(jì)動(dòng)物類及其派生類,并定義虛函數(shù)顯示每種動(dòng)物愛(ài)吃的食物。 7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)
9、與動(dòng)態(tài)綁定程序說(shuō)明:(1)Animal基類中定義了eat()虛函數(shù),用于顯示動(dòng)物愛(ài)吃的食物,成員函數(shù)getName()用于返回動(dòng)物名稱,構(gòu)造函數(shù)用于初始化對(duì)象。除Poultry類沒(méi)有重定義eat()函數(shù)外,其余派生類均重新定義了該虛函數(shù)。 從運(yùn)行結(jié)果可知,Poultry派生類沒(méi)有自己的eat()函數(shù),則繼承了基類函數(shù),而Monkey、Panda等派生類對(duì)象均調(diào)用了自己的虛成員函數(shù)eat()。 (2)show()函數(shù)的形參是指向Animal類的指針ptr,函數(shù)體中通過(guò)指針調(diào)用getName()和eat()函數(shù)。getName()是Animal類的成員函數(shù),屬于常規(guī)訪問(wèn)。 由于eat()是虛函數(shù),
10、ptr-eat()語(yǔ)句能根據(jù)ptr所指向的對(duì)象類型正確地調(diào)用對(duì)應(yīng)函數(shù),而若eat()不是虛函數(shù),則ptr指針只能訪問(wèn)Animal的eat()函數(shù)。7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定(3)指針數(shù)組Animal *ptrArray6;用于保存基類或派生類對(duì)象的地址,之后的6條語(yǔ)句是在自由存儲(chǔ)區(qū)產(chǎn)生6個(gè)不同類的對(duì)象并存儲(chǔ)它們的首地址于數(shù)組中。(4)如果在程序中定義下列函數(shù),在主程序中定義對(duì)象并傳遞給該函數(shù),則同樣也能正確調(diào)用虛函數(shù),實(shí)現(xiàn)多態(tài): void show(Animal &ref) cout ref.getName() ,; ref.eat(); Animal類的指針或引
11、用能根據(jù)所指向或引用的對(duì)象正確地調(diào)用虛函數(shù)。 7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定 7.2.2 VC+動(dòng)態(tài)綁定的實(shí)現(xiàn)機(jī)制 C+語(yǔ)言標(biāo)準(zhǔn)并沒(méi)有規(guī)定動(dòng)態(tài)綁定的實(shí)現(xiàn)方法,本節(jié)主要介紹VC+在內(nèi)部是怎樣實(shí)現(xiàn)虛函數(shù)、多態(tài)和動(dòng)態(tài)綁定。下面通過(guò)跟蹤和分析例7-1來(lái)剖析VC+實(shí)現(xiàn)動(dòng)態(tài)綁定的方法。 在VC+中,多態(tài)是通過(guò)3個(gè)層次的指針(即“三層間接訪問(wèn)”)實(shí)現(xiàn)的。為便于對(duì)比和分析,在Animal類中添加顯示動(dòng)物壽命的虛成員函數(shù)lifeSpan(),如下: virtual void lifeSpan() cout 壽命大致在年到年之間! endl; 7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定 在
12、主函數(shù)中定義對(duì)象Monkey myObj。以跟蹤方式運(yùn)行例7-1,監(jiān)視窗口中如圖7-2所示。7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定l 圖7-2中顯示了程序運(yùn)行時(shí)ptrArray0、ptrArray3、ptrArray4這3個(gè)Animal指針?biāo)笇?duì)象和myObj對(duì)象的存儲(chǔ)信息。l 所有對(duì)象都擁有一個(gè)名稱為_(kāi)vfptr的指針(稱為虛函數(shù)表指針),其中ptrArray0和myObj的_vfptr完全相同。圖7-2中,不同類對(duì)象的_vfptr分別指向了Monkey類、Duck類和Poultry類的虛函數(shù)表,表名均為vftable。l Monkey類的虛函數(shù)表中有兩個(gè)函數(shù)指針,分別指向Monk
13、ey:eat()和Animal:lifespan(),Duck類的虛函數(shù)表中的兩個(gè)函數(shù)指針?lè)謩e指向Duck:eat()和Animal:lifespan(),lifeSpan類的虛函數(shù)表中的兩個(gè)函數(shù)指針?lè)謩e指向Animal:eat()和Animal:lifespan()。7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定 VC+處理動(dòng)態(tài)綁定的基本方法是:編譯器為擁有虛函數(shù)的類創(chuàng)建一個(gè)虛函數(shù)表,在對(duì)象中封裝_vfptr指針,用于指向類的虛函數(shù)表vftable。虛函數(shù)表中存儲(chǔ)了該類所擁有的虛函數(shù)的入口地址,即函數(shù)指針。如果派生類重新定義了基類的虛函數(shù),那么虛函數(shù)表中保存的是指向該類虛函數(shù)的指針,否則保
14、存的是其父類的對(duì)應(yīng)虛函數(shù)指針。例如,Poultry類由于沒(méi)有重定義虛函數(shù),其虛函數(shù)表中保存的是基類Animal的虛函數(shù)指針。調(diào)用哪個(gè)虛函數(shù)決定于所訪問(wèn)的虛函數(shù)表中所記錄的虛函數(shù)指針。7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定 多態(tài)的實(shí)現(xiàn)涉及到3個(gè)層次的指針,如圖7-3所示。第1層次指針是虛函數(shù)表vftable中的函數(shù)指針,它們指向虛函數(shù)被調(diào)用時(shí)的實(shí)際函數(shù)。第2層次指針是對(duì)象中封裝的_vfptr指針,其中存儲(chǔ)了類的虛函數(shù)表的入口地址。第3層次是對(duì)象指針(也可以是引用),以間接方式訪問(wèn)對(duì)象。該指針通常是類層次結(jié)構(gòu)中基類的指針,可以指向派生類的所有對(duì)象。7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與
15、動(dòng)態(tài)綁定7.2.3 虛析構(gòu)函數(shù) 類的構(gòu)造函數(shù)不能聲明為虛函數(shù)。從派生類對(duì)象創(chuàng)建的角度,對(duì)象總是要先構(gòu)造對(duì)象中的基類部分,然后才構(gòu)造派生類部分。構(gòu)造函數(shù)的訪問(wèn)順序是:先調(diào)用基類的構(gòu)造函數(shù),后調(diào)用派生類自身的構(gòu)造函數(shù)。如果構(gòu)造函數(shù)設(shè)為虛函數(shù),那么派生類對(duì)象在構(gòu)建時(shí)將直接調(diào)用派生類構(gòu)造函數(shù),而父類的構(gòu)造函數(shù)就不得不顯式地調(diào)用。 7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定 對(duì)于基類包含虛函數(shù)的類,其析構(gòu)函數(shù)往往需要聲明為虛函數(shù)。這是因?yàn)槎鄳B(tài)性常常是通過(guò)指向派生類對(duì)象的基類指針而實(shí)現(xiàn)。如果基類指針指向的是自由存儲(chǔ)區(qū)中派生類的對(duì)象,此時(shí)需要用delete語(yǔ)句釋放空間。由于基類指針只能訪問(wèn)基類中的非虛
16、成員函數(shù),所以對(duì)象在撤消時(shí)只調(diào)用了基類的非虛析構(gòu)函數(shù),而派生類的析構(gòu)函數(shù)沒(méi)有被調(diào)用。 在基類中定義其析構(gòu)函數(shù)是虛函數(shù),其所有派生類中的析構(gòu)函數(shù)將都是虛函數(shù),盡管它們的名稱并不相同。如果對(duì)一個(gè)基類指針應(yīng)用delete運(yùn)算符顯式地銷毀其類層次結(jié)構(gòu)中的一個(gè)對(duì)象,則系統(tǒng)會(huì)依次調(diào)用派生類和基類的虛析構(gòu)函數(shù)撤消各自創(chuàng)建的對(duì)象。7.2 7.2 虛函數(shù)與動(dòng)態(tài)綁定虛函數(shù)與動(dòng)態(tài)綁定【例7-2】虛析構(gòu)函數(shù)應(yīng)用示例。程序說(shuō)明:l 如果去除源程序中Base類構(gòu)造函數(shù)前的virtual關(guān)鍵字,則程序運(yùn)行結(jié)果中將缺少第4行“Derived類的析構(gòu)函數(shù)被調(diào)用”,即僅調(diào)用了基類的非虛析構(gòu)函數(shù)。l 若修改Base *basePt
17、r指針為Derived *basePtr(改為派生類指針),則無(wú)論析構(gòu)函數(shù)是否為虛函數(shù),派生類和基類的析構(gòu)函數(shù)均被調(diào)用。但這種用法不具有多態(tài)性。 7.3 7.3 純虛函數(shù)與抽象類純虛函數(shù)與抽象類 C+語(yǔ)言允許類中虛函數(shù)在聲明時(shí)直接指定“=0”,說(shuō)明該函數(shù)不提供具體的實(shí)現(xiàn),這種虛函數(shù)稱為純虛函數(shù)(Pure Virtual Function)。純虛函數(shù)的聲明格式如下: virtual 函數(shù)名()=0; 含一個(gè)或多個(gè)純虛函數(shù)的類稱為抽象類(Abstract Class)。由于純虛函數(shù)沒(méi)有具體的函數(shù)體,用抽象類定義對(duì)象是無(wú)實(shí)際意義的,因而用含有純虛函數(shù)的抽象類定義對(duì)象,C+編譯器將報(bào)錯(cuò)。7.3 7.3
18、 純虛函數(shù)與抽象類純虛函數(shù)與抽象類 在幾何形類結(jié)構(gòu)中,幾何形是一個(gè)抽象的概念,對(duì)于一個(gè)不知具體形狀的幾何形,我們是無(wú)法計(jì)算其面積或體積的。通常我們將幾何形類定義為抽象類,用它作為具體類的基類,即以其為基礎(chǔ)派生出各種具體的幾何形類(如圓類、三角形類、長(zhǎng)方體類等)。幾何形類中定義的純虛函數(shù)(如求面積、求體積)在派生類中被定義,并根據(jù)具體幾何形的特征編寫相應(yīng)的虛函數(shù)實(shí)現(xiàn)?!纠?-3】純虛函數(shù)與抽象類示例。以幾何形類為抽象基類,派生圓、矩形、圓柱等類,計(jì)算各種幾何形的面積和體積。7.3 7.3 純虛函數(shù)與抽象類純虛函數(shù)與抽象類程序說(shuō)明:l 抽象類Shape中聲明了4個(gè)純虛函數(shù),在派生類中對(duì)它們分別進(jìn)行
19、了定義。在主函數(shù)中,定義了一個(gè)基類指針Shape *ptr,該指針在程序運(yùn)行時(shí)可指向任何派生類的對(duì)象,并用一致的方法ptr-input(); ptr-output();實(shí)現(xiàn)不同幾何形對(duì)象的數(shù)據(jù)輸入和結(jié)果輸出。體現(xiàn)出“單個(gè)接口,多種方法”的軟件設(shè)計(jì)思想。l menu()函數(shù)為用戶提供了操作軟件的界面。l 讀者不妨在例程的基礎(chǔ)上,派生三棱柱、球等幾何體,體驗(yàn)多態(tài)性所帶來(lái)的程序容易擴(kuò)展的優(yōu)點(diǎn)。7.3 7.3 純虛函數(shù)與抽象類純虛函數(shù)與抽象類【例7-4】用梯形法求函數(shù)的定積分。l 分析: 函數(shù)f(x)在閉區(qū)間a, b上的定積分的幾何意義是曲線f(x)、x軸、直線f(a)和f(b)所圍成的曲邊梯形的面積。梯形法求定積分的方法是將區(qū)間a, b等分成若干個(gè)小區(qū)間,在小區(qū)間上用小梯形的面積代替曲邊梯形的面積,如圖7-4所示。當(dāng)小區(qū)間的個(gè)數(shù)足夠多時(shí),小梯形面積之和為函數(shù)f(x)在a, b上定積分的近似值。7.3 7.3 純虛函數(shù)與抽象類純虛函數(shù)與抽象類程序說(shuō)明:l Trapezium類中定義了純虛函數(shù)virtual double fun(double x) const=0;,因此該類為抽象類。在派生類中只要用相應(yīng)的被積函數(shù)實(shí)現(xiàn)虛函數(shù)fun,則通過(guò)基類的積分計(jì)算函數(shù)double Integerate()能算出相應(yīng)函數(shù)的定積分的值。l 本例的顯示結(jié)果并不理想,建議讀者
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省鄭州市中原區(qū)2024-2025學(xué)年上學(xué)期高三年級(jí)一測(cè)模擬演練 英語(yǔ)試卷(含答案無(wú)聽(tīng)力原文、答案及音頻)
- 2025年度勞動(dòng)合同員工福利待遇與補(bǔ)貼合同3篇
- 2024版標(biāo)準(zhǔn)汽車租賃合同協(xié)議
- 2024路邊廣告位使用權(quán)及城市美化工程合作合同3篇
- 2024項(xiàng)目開(kāi)發(fā)全過(guò)程委托協(xié)議版B版
- 健康監(jiān)護(hù)知識(shí)培訓(xùn)課件
- 福建省南平市建陽(yáng)水吉中學(xué)2020-2021學(xué)年高三物理期末試卷含解析
- 2024男方離婚條件下的贍養(yǎng)費(fèi)支付與房產(chǎn)分割合同3篇
- 2025年度冷鏈倉(cāng)儲(chǔ)行業(yè)員工勞動(dòng)合同書3篇
- 2024版混凝土構(gòu)件加工承攬合同
- 2024年杭州市中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院教務(wù)教學(xué)管理制度匯編(2024年)
- 2024-2025學(xué)年人教版八年級(jí)數(shù)學(xué)上冊(cè)期末測(cè)試模擬試題(含答案)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之15:“6策劃-6.4創(chuàng)新組合”(雷澤佳編制-2025B0)
- 2025混凝土外加劑買賣合同
- 《環(huán)境感知技術(shù)》2024年課程標(biāo)準(zhǔn)(含課程思政設(shè)計(jì))
- 2024年電影院項(xiàng)目可行性研究報(bào)告
- GB/T 45079-2024人工智能深度學(xué)習(xí)框架多硬件平臺(tái)適配技術(shù)規(guī)范
- 福建省廈門市2023-2024學(xué)年高二上學(xué)期期末考試質(zhì)量檢測(cè)化學(xué)試題 附答案
- 小學(xué)生科普人工智能
- 單位局域網(wǎng)的建設(shè)—畢業(yè)論文
評(píng)論
0/150
提交評(píng)論