(中職)編程語言基礎-C++模塊8教學課件_第1頁
(中職)編程語言基礎-C++模塊8教學課件_第2頁
(中職)編程語言基礎-C++模塊8教學課件_第3頁
(中職)編程語言基礎-C++模塊8教學課件_第4頁
(中職)編程語言基礎-C++模塊8教學課件_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、YCF正版可修改PPT(中職)編程語言基礎-C+模塊8教學課件模塊8繼承與派生任務1繼承概述任務2派生類任務3單繼承任務4多繼承任務5派生關系中的二義性任務6虛基類返回任務1繼承概述8.1.1 繼承繼承是現(xiàn)實世界普遍存在的現(xiàn)象。例如,子女會繼承父母的特點,同時又有自己的特點。對老產品進行改進形成新產品,新產品繼承老產品的一些特征,同時又有新的改進。繼承也被用于程序設計中。通過繼承可以在原有類的基礎上建立新類,新類繼承原有類的內容,使程序代碼可以重用,提高程序設計效率。 繼承是一個進程,通過繼承,一個對象可以獲得另一個對象的屬性。更嚴格地說,一個對象可以繼承屬性的集合,并可向其中加人屬于自己的一

2、些特征。在C+語言中,繼承是一個十分重要的概念,因為繼承允許一個對象支持多層分類的概念。很多信息通過多層分類變得容易管理。)下一頁返回任務1繼承概述例如:樓房是建筑物中的一部分,建筑物又是結構的一部分,結構又是建造這一概念中的一部分。在這種情況下,子類繼承了父類的所有屬性,并加人了子類所特有的屬性。如果不使用多層分類的概念,對每個對象的清晰描述都要包括其全部屬性。而采用繼承來描述一個對象時,只需在通用類特征的基礎上添加該對象的一些特有屬性即可。這樣一來,由繼承得到的對象是惟一的,因此,繼承在面向對象程序設計中的作用十分重要。類的繼承是C+語言的一種重要機制,該機制自動為一個類提供來自另一個類的

3、操作和數(shù)據(jù)結構。繼承可以使程序設計人員在一個一般類的基礎上很快建立一個新的類,而不必從零開始設計每個類。)上一頁下一頁返回任務1繼承概述8. 1 .2 繼承的相關說明關于繼承的幾點說明。 (1)如果子類繼承了父類,則子類自動具有父類的全部數(shù)據(jù)成員(數(shù)據(jù)結構)和成員函數(shù)(功能);但是,子類對父類的成員的訪問有所限制。 (2)子類可以定義自己的成員:數(shù)據(jù)成員和成員函數(shù)。 (3)基類、派生類或父類、子類都是相對的。一個類派生出的新的類就是派生類。派生類一也可以被其他類繼承,這個派生類同時一也是基類。 繼承類別包括公有繼承、私有繼承和保護繼承。上一頁下一頁返回任務1繼承概述8. 1 .3 類的繼承方式

4、1.公有繼承派生時用public作繼承方式?;惖墓卸?public)成員被繼承為公有的?;惖乃接卸?private)成員在派生類中不可見?;惖谋Wo段(protected)成員被繼承為保護的。2.私有繼承派生時用private作繼承方式?;惖墓卸?public)成員被繼承為私有的?;惖乃接卸?private)成員在派生類中不可見?;惖谋Wo段(protected)成員被繼承為私有的。上一頁下一頁返回任務1繼承概述3.保護繼承派生時用protected作繼承方式。基類的公有段(public)成員被繼承為保護的?;惖乃接卸?private)成員在派生類中不可見。基類的保護段(prot

5、ected)成員被繼承為保護的。注意以下幾點。)(1)無論哪種繼承方式,基類中的private成員在派生類中都是不可見的。換句話說,基類中的private成員不允許外部函數(shù)或派生類中的任何成員訪問。上一頁下一頁返回任務1繼承概述( 2 private派生確?;愔械姆椒ㄖ豢梢宰屌缮悓ο笾械姆椒ㄩg接使用,而不能被外部使用。 ( 3 ) public派生使得派生類對象和外部都可以直接使用基類中的方法,除非這些方法已被重新定義。 ( 4 ) protected成員是一種血緣關系內外有別的成員,它對派生對象來說,是公開成員,可以訪問;對血緣外部來講,和private成員一樣被隱蔽。上一頁下一頁返回任

6、務1繼承概述 ( 5 ) private派生使得基類的非私有成員都成為派生類中的私有成員;protected派生使基類中的非私有成員的訪問屬性在派生類中都降為保護的public派生使得基類的非私有成員的訪問屬性在派生類中保持不變。不同繼承方式的結果見表8-1.上一頁返回任務2派生類8. 2.1 派生類的定義 一般情況下,繼承的進程起源于一個基類的定義,基類定義了其所有派生類的公有屬性。從本質上講,基類具有同一類集合中的公共屬性,派生類繼承了這些屬性,并且增加了自己特有的屬性。從任何已存在的類繼承的實質就是建造新的派生類。一也就是說,類繼承可以從一個類即基類中繼承該基類的成員,并增加新的成員。

7、繼承其他類屬性的類稱為派生類,又稱為子類。那么在原有類基礎上建立的新類也可以稱之為派生類或子類,原有類稱為子類的父類或基類,一也可稱為超類。子類和父類形成類的層次和繼承關系。由于子類在父類的基礎上建立,因此子類繼承了父類的特性和功子類除了擁有父類的特性和功能外,還可以增加自己的特性和功能。下一頁返回任務2派生類C+中定義派生類的語法格式如下:class: 新增私有成員聲明語句列表public: 新增公有成員聲明語句列表protected: 新增保護成員聲明語句列表;上一頁下一頁返回任務2派生類 “繼承方式”即派生類的訪問控制方式,用于控制基類中聲明的成員在多大的范圍內能被派生類的用戶訪問。每一

8、個繼承方式,只對緊隨其后的基類進行限定。 繼承方式包括3種:公有繼承public ;私有繼承private ;保護繼承protected。若不顯式給出繼承方式關鍵字,系統(tǒng)則默認為私有繼承(private。類的繼承方式指定了派生類成員以及類外對象對于從基類繼承來的成員的訪問權限。 從己有類派生出的新類,除了能從基類繼承所有成員之外,還可以在派生類內完成以下幾種功能。)上一頁下一頁返回任務2派生類 (1)可以增加新的數(shù)據(jù)成員。 (2)可以增加新的成員函數(shù)。 (3)可以重新定義基類中已有的成員函數(shù)。 (4)可以改變現(xiàn)有成員的屬性。 繼承方式決定了子類對父類的訪問權限。有3種繼承方式:private

9、,public和protected ,默認為private ,最常用的是public 為了理解G+如何根據(jù)已有類建立新類,請分析下面的程序。上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類 在類名B后public A之前有一個冒號。冒號說明B類根據(jù)A類建立,A類是B類的基類(直接基類),B類可以繼承A類的內容。關鍵字public表明,基類A的所有公有成員一也是派生類的公有成員。但基類A的所有私有成員仍只屬于A類,不被派生類B繼承。 一個類可以有直接基類和間接基類。如果類A派生出類B,類B又派生出類C,則稱類A是類B的直接基類,類B是類C的直接基類,類A是類C的間接基類。上一頁下一頁返回

10、任務2派生類8.2.2派生類的構造函數(shù)和析構函數(shù) 派生類繼承了基類的成員,實現(xiàn)了代碼的復用。但是,基類的構造函數(shù)和析構函數(shù)不能被繼承。在派生類中,如果對派生類新增成員進行初始化,就必須由程序員針對實際需要加人新的構造函數(shù)。而且,對所有從基類繼承下來的成員的初始化工作,還是由基類的構造函數(shù)完成,但必須在派生類中,對基類的構造函數(shù)所需的參數(shù)進行設置。同樣,對派生類對象的掃尾、清理工作也需要加人新的析構函數(shù)。上一頁下一頁返回任務2派生類 1.派生類的構造函數(shù) 構造函數(shù)不能被繼承,因此,派生類的構造函數(shù)必須通過調用基類的構造函數(shù)來初始化基類子對象。所以,在定義派生類的構造函數(shù)時,除了對自己的數(shù)據(jù)成員進

11、行初始化外,還必須負責調用基類構造函數(shù)使基類的數(shù)據(jù)成員得以初始化。如果派生類中還有子對象,還應包含對子對象初始化的構造函數(shù)。 上一頁下一頁返回任務2派生類派生類構造函數(shù)的一般語法規(guī)則為: :():(),基類名n(),(),(子對象參數(shù)表m) 上一頁下一頁返回任務2派生類 派生類構造函數(shù)執(zhí)行的一般次序如下:首先調用基類構造函數(shù),調用順序按照它們被繼承時說明的順序。然后調用子對象的構造函數(shù),調用順序按照它們在類中的說明順序。最后是派生類構造函數(shù)中的內容。 在實際應用中,使用派生類構造函數(shù)時應注意以下兩個問題。 (1)派生類構造函數(shù)的定義中可以省略對基類構造函數(shù)的調用,其條件是在基類中必須有默認的構

12、造函數(shù)或者根本沒有定義構造函數(shù)。當然,若基類中沒有定義構造函數(shù),派生類就不必負責調用基類構造函數(shù)。 (2)當基類的構造函數(shù)使用一個或多個參數(shù)時,則派生類必須定義構造函數(shù),提供將參數(shù)傳遞給基類構造函數(shù)的途徑。在某些情況下,派生類構造函數(shù)的參數(shù)可能為空,僅起到傳遞參數(shù)的作用。上一頁下一頁返回任務2派生類 2.派生類的析構函數(shù) 當對象被刪除時,派生類的析構函數(shù)就被執(zhí)行。 由于析構函數(shù)不能被繼承,因此在執(zhí)行派生類的析構函數(shù)時,基類的析構函數(shù)也將被調用。執(zhí)行順序是先執(zhí)行派生類的析構函數(shù),再執(zhí)行基類的析構函數(shù),其順序與執(zhí)行構造函數(shù)的順序正好相反。上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一

13、頁下一頁返回任務2派生類運行結果:xy 在C+中,由于析構函數(shù)不能被繼承,因此在執(zhí)行派生類的析構函數(shù)時,基類的析構函數(shù)也將被調用。執(zhí)行順序是先執(zhí)行派生類的析構函數(shù),再執(zhí)行基類的析構函數(shù),其順序與執(zhí)行構造函數(shù)的順序正好相反。在此題的程序中,在主函數(shù)main結束時,派生類Derived對象ohj將被刪除,所以就會調用對象的析構函數(shù)。先調用派生類的析構函數(shù),輸出x,然后調用基類的析構函數(shù),輸出Y 。上一頁下一頁返回任務2派生類8.2.3基類與派生類之間的關系 (1)派生類不僅擁有屬于自己的數(shù)據(jù)成員與成員函數(shù),而且還保持了從基類繼承來的數(shù)據(jù)成員與成員函數(shù)。同時派生類可對一些繼承來的函數(shù)重新定義,以適應

14、新的要求。 (2) C+中關于類的繼承方式的規(guī)定,如表8-2所示。上一頁下一頁返回任務2派生類 按private方式繼承(即私有繼承)時,基類中的公有成員和保護成員在派生類中皆變?yōu)樗接谐蓡T。 按public方式繼承(即公有繼承)時,基類中的公有成員和保護成員在派生類中不變。 無論按哪種繼承方式繼承,基類的私有成員在派生類中始終是不可訪問的。這與私有成員的定義是一致的,符合數(shù)據(jù)封裝的思想。 注意:私有成員與不可訪問成員是兩個不同的概念。某個類的私有成員只能被該類的成員函數(shù)所訪問,而類的不可訪問成員甚至不能被該類的成員函數(shù)所訪問。類的不可訪問成員總是從某個基類派生來的,它或者是基類的私有成員,或者

15、是基類的不可訪問成員。上一頁下一頁返回任務2派生類 (3)在C+中,可以根據(jù)需要定義多層的繼承關系,一也可以從一個基類派生出多個類來形成類的層次結構,在類的層次結構中,處于高層的類表示最一般的特征,而處于底層的類則表示更具體的特征。在多層繼承關系中,基類與派生類的關系是相對的,例如:由類A派生出類B,再由類B派生出類C。這里,類B相對于類A是派生類,而相對于類C則是基類,并稱類C是類A的間接派生類,稱類A是類C的間接基類,而稱具有直接派生關系的兩個類分別為直接派生類和直接基類。)上一頁下一頁返回任務2派生類 【例8-1】類Build_1是一個關于樓房數(shù)據(jù)的類。它的數(shù)據(jù)成員有posi_x , p

16、osi_y和area,分別是樓房位置的經、緯度和建筑面積。它的函數(shù)成員只有setl,用于設置數(shù)據(jù)成員posi_ x , posi_y和area的值。讓Build_ 1作為基類,再增加數(shù)據(jù)成員hi蜘、函數(shù)成員set2和disp來定義派生類Build_2。上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類運行結果:經度:100緯度:200高度:400面積:300上一頁下一頁返回任務2派生類 由此可見,派生類Build一中繼承了基類Build_ 1中的數(shù)據(jù)成員posi_x , posi_v , area(它們都是基類Build_ 1中的protected成員)和基類

17、中的成員函數(shù)setl(它是基類的public;成員),并同時增加了新的成員height和成員函數(shù)set2 ,disp8.2.4派生類對基類成員的訪問派生類對基類成員的訪問能力如表8-3所示。 從表8-3可以看出以下兩點。 (1)基類中的私有成員在派生類中是隱藏的,只能在基類內部訪問。上一頁下一頁返回任務2派生類 (2)派生類中的成員不能訪問基類中的私有成員,可以訪問基類中的公有成員和保護成員。 此時派生類對基類中各成員的訪問能力與繼承方式無關,但繼承方式將影響基類成員在派生類中的訪問控制屬性?;愔泄谐蓡T和保護成員的訪問控制屬性將隨著繼承方式而改變:派生類從基類公有繼承時,基類的公有成員和保

18、護成員在派生類中仍為公有成員和保護成員;派生類從基類私有繼承時,基類的公有成員和保護成員在派生類中都改變?yōu)樗接谐蓡T;派生類從基類保護繼承時,基類的公有成員在派生類中改變?yōu)楸Wo成員,基類的保護成員在派生類中則仍為保護成員。上一頁下一頁返回任務2派生類 派生類對基類成員的訪問形式主要有以下兩種。 (1)內部訪問:由派生類中新增成員對基類繼承來的成員的訪問。 (2)對象訪問:在派生類外部,通過派生類的對象對從基類繼承來的成員的訪問。 1.私有繼承的訪問規(guī)則 當類的繼承方式為私有繼承時,基類的public成員和protected成員被繼承后作為派生類的private成員,派生類的其他成員可以直接訪問它

19、們,但是在類外部通過派生類的對象無法訪問。 基類的private成員在私有派生類中是不可以直接訪問的,所以無論是派生類成員還是通過派生類的對象,都無法直接訪問從基類繼承來的private成員,但是可以通過基類提供的public成員函數(shù)間接訪問。訪問規(guī)則如表8-4所示。上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類說明:在這個例子中,由于是私有繼承,所以在main函數(shù)中不能對函數(shù)set ( ) , print進行訪問。由于x,v是基類Foundation中的私有成員,所以在display)中不能對它進行

20、訪問,要使調用display()輸出三個數(shù),可以改為如下形式:上一頁下一頁返回任務2派生類2.公有繼承的訪問規(guī)則 當類的繼承方式為公有繼承時,基類的public成員和protected成員繼承到派生類中仍作為派生類的public成員和protected成員,派生類的其他成員可以直接訪問它們。但是,類的外部使用者只能通過派生類的對象訪問繼承來的public成員。 基類的private成員在私有派生類中是不可直接訪問的,所以無論是派生類成員還是通過派生類的對象,都無法直接訪問從基類繼承來的private成員,但是可以通過基類提供的public成員函數(shù)間接訪問它們。訪問規(guī)則如表8-5所示。上一頁下一

21、頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類說明:在main函數(shù)中可以使用exam. set ( ) , exam. print)函數(shù),因為它們在繼承類中為public成員,所以可以直接使用。 3.保護繼承的訪問規(guī)則 當類的繼承方式為保護繼承時,基類的public成員和protected成員繼承到派生類中都作為派生類的protected成員,派生類的其他成員可以直接訪問它們,但是類的外部使用者不能通過派生類的對象來訪問它們。 基類的private成員在私有派生類中是不可直接訪問的,

22、所以無論是派生類成員還是通過派生類的對象,都無法直接訪問基類的private成員。訪問規(guī)則如表8-6所示。上一頁下一頁返回任務2派生類【例8-4】上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類上一頁下一頁返回任務2派生類說明:在main()中,由于exam. set( ) ,exam. print()函數(shù)在繼承類中為protected成員,不能用對象直接訪問,把這兩句注釋掉就可以運行了。上一頁返回任務3單繼承在C+中,一個派生類既可以從一個基類派生,也可以從多個基類派生。從一個基類派生稱為單繼承,而從多個基類派生稱為多重繼承。本任務先介紹單繼承。單繼承的繼

23、承關系如圖8-1。單繼承聲明語句的常用形式為: class派生類名:訪問方式基類名 數(shù)據(jù)成員和成員函數(shù)聲明 說明以下幾點。 (1)派生類名由用戶自己命名。 (2)在冒號“:”后的內容告訴系統(tǒng),這個派生類是從哪個基類派生的以及在派生時的繼承方式是什么。返回下一頁任務3單繼承 (3)“訪問方式”即繼承方式,它可以為public或private。如果省略,則默認為private方式。訪問方式為public時,這種繼承稱為公有繼承;而訪問方式為private時,這種繼承則稱為私有繼承。(4)基類名必須是程序中已有的一個類。(5)大括號內的部分是派生類中新定義的成員?!纠?-5】單繼承舉例。上一頁下一頁

24、返回任務3單繼承上一頁下一頁返回任務3單繼承上一頁下一頁返回任務3單繼承運行結果:20上一頁下一頁返回任務3單繼承程序中,類A是基類,類B是從類A派生而來。派生類B的成員函數(shù)g2()調用了基類A的成員函數(shù)f2(),這種調用方法是正確的,因為基類A中的公有成員也是派生類B的公有成員。但是,如果g2()要訪問變量i,必須通過函數(shù)f2(),因為i是A的私有變量,仍封裝在基類A中,A的派生類不能直接訪問這個變量。如果一個類的私有成員通過繼承機制就能變?yōu)楣谐蓡T,那么封裝就沒有意義了。上一頁返回任務4多繼承從多個基類派生的繼承稱為多繼承或多重繼承。也就是說,一個派生類有多個直接基類。多繼承的繼承關系如圖

25、8-2所示。多繼承聲明語句的形式為:class派生類名:訪問方式基類名1,訪問方式基類名2,.數(shù)據(jù)成員和成員函數(shù)聲明例如:class A數(shù)據(jù)成員和成員函數(shù)聲明下一頁返回任務4多繼承class B數(shù)據(jù)成員和成員函數(shù)聲明class C:public A, private B數(shù)據(jù)成員和成員函數(shù)聲明上一頁下一頁返回任務4多繼承 此例說明類C繼承了類A和類B。類C是一個多繼承。類A的成員被繼承后,訪問權限不變。類B的成員被繼承后,成為類C的私有成員。類C雖然繼承了類A和類B的私有成員,但仍然不能直接訪問它們。請看下面的例子。上一頁下一頁返回任務4多繼承上一頁下一頁返回任務4多繼承類C對象的成員與類A和類

26、B成員的關系可用一個有向無環(huán)圖表示,如圖8-3所示。 箭頭表示由誰派生而來?;ɡㄌ杻攘谐鲈擃惵暶鞯某蓡T。從圖8-3可以看出,C從A和B兩個繼承路徑繼承而來,每個繼承可以視為一個單繼承。上一頁下一頁返回任務4多繼承上一頁下一頁返回任務4多繼承上一頁下一頁返回任務4多繼承上一頁下一頁返回任務4多繼承運行結果:A:show()A中i=1B:show()B中i=2C:show()C中i=3上一頁返回任務5派生關系中的二義性 繼承和派生把不同的類聯(lián)系到一起,這里就產生了一個同名成員的處理問題,下面我們分幾種情形來介紹。8. 5. 1單一繼承時基類與派生類間重名成員的處理 單一繼承(只有一個基類)時,若基

27、類與派生類的成員重名,則按如下規(guī)定進行處理:對派生類而言(在派生類定義范圍內以及通過派生類對象訪問重名成員時),不加類名限定時默認為是處理派生類成員,而要訪問基類重名成員時,則要通過類名限定。下一頁返回任務5派生關系中的二義性 例如基類CB有保護數(shù)據(jù)成員int a;有公有函數(shù)成員void show( void)。而CB的派生類CD-也有自己的數(shù)據(jù)成員int a,和函數(shù)成員void show( void);這時通過CD的對象CDobj來引用它們: CDobj. a,CDobj. show() 這里用的是派生類CD自己的成員a和show。如果需要引用從CB中繼承過來的成員a和show ( ),則還

28、需加上類限定符:CDobj. CB:a,CDobj. CB:show()從而避免了二義性。下面看一個簡單例子。上一頁下一頁返回任務5派生關系中的二義性上一頁下一頁返回任務5派生關系中的二義性上一頁下一頁返回任務5派生關系中的二義性上一頁下一頁返回任務5派生關系中的二義性上一頁下一頁返回任務5派生關系中的二義性8.5. 2多重繼承情況下二基類間重名成員的處理 在多重繼承時,也可能出現(xiàn)類似的問題。設類CD以類CB1,類CB2為基類,這是多重繼承。類CB1和類CB2可能有同名或同原型的成員,在它們都被CD所繼承時,可能產生二義性,如show)同為CB1和CB2的公有成員,則類CD從CB1和CB2繼承

29、了兩個可能函數(shù)體不同的函數(shù)成員show ( o顯然通過CD的對象CDohj直接引用函數(shù)show即CDohj.show)可能產生二義性。這里的解決方法和上文一樣,一也是要加上基類限定符:上一頁下一頁返回任務5派生關系中的二義性CDobj. CB1:show()和CDobj. CB2:show() 如此二義性問題得到解決。 概括地說,多重繼承(具有多個基類)情況下兩個基類間成員重名時,要按如下方式進行處理:對派生類而言(在派生類定義范圍內以及通過派生類對象訪問重名成員時),不加類名限定時默認為是處理派生類成員,而要訪問基類重名成員時,則要通過類名限定。上一頁返回任務6 虛基類8. 6. 1 虛基類

30、的定義在多繼承中,若在多條繼承路徑上,有公共基類,這個公共基類便會產生多個副本。為了解決由多繼承造成的二義性問題,把公共基類定義為虛基類。 虛基類是對派生類而言,所以,虛基類本身的定義同基類一樣,在定義派生類時聲明該基類為虛基類即可,就是冠以關鍵字virtual 虛基類在定義由基類直接派生的類時說明。說明的語法格式為: class:virtual下一頁返回任務6 虛基類上一頁下一頁返回任務6 虛基類上一頁下一頁返回任務6 虛基類上一頁下一頁返回任務6 虛基類若類A不是虛基類,則語句ohj. A: : fn()就不能執(zhí)行,這是因為計算機無法確定是執(zhí)行B1繼承的基類A的函數(shù),還是執(zhí)行B2繼承的基類A的函數(shù),具有二義性。A為虛基類就只有一個基類副本。 執(zhí)行結果為: B1:fn() B2:fn() A:fn()上一頁下一頁返回任務6 虛基類若基類使用無參數(shù)構造函數(shù)時,可以將基類的構造函數(shù)省略?;惖臉嬙旌瘮?shù)必須是已定義的。對于例8-8,A是否為虛基類,程序結構是不一樣的,如圖8-4所示。多重繼承的構造函數(shù)按照下面的原則被調用。 先基類,后自己。 在同一層上如有多個基類,則先虛基類,后非虛基類

溫馨提示

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

評論

0/150

提交評論