C++程序設(shè)計(jì)基礎(chǔ)知識_第1頁
C++程序設(shè)計(jì)基礎(chǔ)知識_第2頁
C++程序設(shè)計(jì)基礎(chǔ)知識_第3頁
C++程序設(shè)計(jì)基礎(chǔ)知識_第4頁
C++程序設(shè)計(jì)基礎(chǔ)知識_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C+程序設(shè)計(jì)C+基礎(chǔ)知識第2章 C+基礎(chǔ)知識 本章學(xué)習(xí)要點(diǎn)從C程序到C+程序的發(fā)展歷程簡單的C+程序C+的輸入輸出、數(shù)據(jù)類型、函數(shù)及指針C+的常變量、引用、名字空間、字符串變量C+程序的編寫和實(shí)現(xiàn)第2章 C+基礎(chǔ)知識本章學(xué)習(xí)目標(biāo)了解從C程序到C+程序的發(fā)展歷程對簡單的C+程序有整體的感性認(rèn)識掌握C+對C的擴(kuò)充掌握C+的輸入輸出、數(shù)據(jù)類型、函數(shù)及指針掌握C+的常變量、引用、名字空間、字符串變量熟悉C+程序的編寫和實(shí)現(xiàn)流程2.1 從C到C+C到C+的發(fā)展歷程C+3.0C+2.0C+1.0帶類的CCC+4.0ANSI C+89年,增加類的多繼承91年,增加模板增加異常處理、名字空間、運(yùn)行時(shí)類型識別9

2、7年,成為標(biāo)準(zhǔn)2.2 簡單C+程序通過簡單的C+例子認(rèn)識C+程序 【例2-1】在屏幕上輸出一行字符“Hello C+!”。/=#include /包含頭文件命令using namespace std;/使用名字空間stdint main()coutHello C+!endl; /輸出字符串到屏幕return 0; /main函數(shù)返回0至操作系統(tǒng)/=注意:標(biāo)準(zhǔn)C+程序和C程序的不同 :main函數(shù)的返回值為整型 使用cout輸出及需要用到的頭文件iostream 名字空間2.2 簡單C+程序C+的函數(shù)和C語言的函數(shù)非常相似 函數(shù)的使用仍然需要先聲明后使用。如果函數(shù)定義在函數(shù)調(diào)用之后,則必須在前面

3、聲明函數(shù)原型【例2-2】通過函數(shù)求兩個(gè)整數(shù)a和b的和。/=#include /包含頭文件命令using namespace std;/使用名字空間stdint sum(int x, int y) return x + y; /求和的函數(shù)int main()int a,b; /定義兩個(gè)變量a和bcoutInput to a and b: ab;/等待用戶從鍵盤輸入數(shù)據(jù)couta+b=sum(a, b)endl;/輸出結(jié)果信息至屏幕return 0;/main函數(shù)返回0至操作系統(tǒng)/=2.2 簡單C+程序【例2-3】聲明一個(gè)關(guān)于人的類Person,人的信息包括姓名、性別、年齡,人可以輸入自己的信息,

4、也可以顯示自己的信息。#include /包含頭文件命令using namespace std;/使用名字空間stdclass Person/類的聲明public:/以下為類的公用成員函數(shù)void SetInfo()/公用成員函數(shù)SetInfo coutnamesexage; /輸入數(shù)據(jù)至私有數(shù)據(jù)成員void Show()/公用成員函數(shù)Show cout name : name; /輸出私有成員name的值cout sex: sex;/輸出私有成員sex的值cout age: age、運(yùn)算符2.3.2 數(shù)據(jù)類型的擴(kuò)展基本類型空類型引用類型指針類型構(gòu)造類型C+數(shù)據(jù)類型整型、字符型浮點(diǎn)型布爾型枚舉

5、、數(shù)組結(jié)構(gòu)體、共用體類2.3.3 用const定義常變量直接常量和符號常量符號常量的缺點(diǎn)運(yùn)行時(shí)不分配內(nèi)存單元符號常量沒有類型,在編譯時(shí)不進(jìn)行類型檢查替換后的表達(dá)式和預(yù)想的表達(dá)式是否一致為了使常量也能像變量那樣進(jìn)行類型檢查,C+提供了用const定義常變量的方法定義常變量的語法:const 類型 變量名;2.3.3 用const定義常變量【例2-4】利用常變量計(jì)算圓的面積。/=#include using namespace std;int main() const float PI = 3.14; /定義常變量float radius = 0;coutradius;coutThe area o

6、f circle is: PI*radius*radiusendl;return 0;/=注意const的位置,一般見到的const的位置可能在類型的前面,但是const也可以在變量名前面,并且兩者的含義完全相同。2.3.4 指針指針的概念指針是一個(gè)重要概念,如果使用得當(dāng)可以使程序高效、簡潔、緊湊。如果對指針掌握不牢固,編程則會出現(xiàn)意想不到的錯(cuò)誤 指針是內(nèi)存單元的地址 經(jīng)常所講的指針是指針變量的簡稱,是用來存放指針(地址)的變量。 本節(jié)重點(diǎn)討論C+中使用指針需要注意的地方 2.3.4.1 指針與0空指針空指針表示“未分配”或者“尚未指向任何地方”的指針 空指針一般用來判斷內(nèi)存分配是否成功注意:

7、“空指針”與“野指針”的區(qū)別在指針上下文中的常數(shù)0被編譯成空指針 程序員更常使用符號常量NULL來表示空指針 2.3.4.1 指針與0【例2-5】指針和0/=#include using namespace std;int main()int *p = 0; /定義空指針pint *q; /定義野指針qint x = 100; /定義整型變量x并初始化為100/*p = 50; /若執(zhí)行則編譯出錯(cuò),不能使用空指針*q = 50; /編譯通過,但不知把50寫到何處p = q = &x; /使指針p和q都指向變量xif(p!= 0) /判斷指針p是否為空指針cout*p *qendl; /輸出變量

8、x的值/=注意編程時(shí)養(yǎng)成定義指針時(shí)初始化為空指針,使用指針時(shí)判斷是否為空指針的好習(xí)慣,可以減少程序中指針的許多錯(cuò)誤。2.3.4.2 指針與const【例2-6】指向const變量的指針。/=#include using namespace std;int main() const int *p = NULL; /定義指向const變量的指針pconst int a = 10 ; /定義常變量ap = &a; /指針p指向acout*p = *pendl; /輸出p所指向單元的內(nèi)容int b = 100; /定義普通變量bp = &b; /指針p指向bcout*p = *pendl; /輸出p所

9、指向單元的內(nèi)容/*p = 200; /錯(cuò)誤,不能通過p修改p所指向單元內(nèi)容b = 200;cout*p = *pendl; /輸出p所指向單元的內(nèi)容return 0;/=通過本例可以看到可以改變指向const變量的指針的指向,但是不能通過指針修改指針指向單元內(nèi)容2.3.4.2 指針與const通過本例可以看到可以改變const指針指向單元的內(nèi)容,但是不能改變const指針的指向?!纠?-7】const指針。/=#include using namespace std;int main() int a = 10 ; /定義普通變量aint b = 100; /定義普通變量bint * const

10、 p = &a; /定義const指針p并初始化指向acout*p = *pendl; /輸出p所指向單元內(nèi)容/p = &b; /錯(cuò)誤,不能改變const指針p的指向*p = 100; /通過指針修改p所指向單元內(nèi)容cout*p = *pendl; /輸出p所指向單元內(nèi)容return 0;/=2.3.4.2 指針與const對于指向const變量的const指針,既不能改變指針指向單元的內(nèi)容,也不能改變指針的指向。【例2-8】指向const變量的const指針。/=#include using namespace std;int main() int a = 10 ;int b = 100;c

11、onst int * const p = &a; /定義指向const變量的const指針pcout*p = *pendl; /輸出p所指向單元內(nèi)容/p = &b; /錯(cuò)誤,不能改變指針p的指向/*p = 100; /錯(cuò)誤,不能改變p所指向單元的內(nèi)容return 0;/=2.3.4.2 指針與const小結(jié)指針和const的關(guān)系比較復(fù)雜,const有兩個(gè)位置,可形成三種指針:1.只在“*”之前有const的指針,稱為指向const變量的指針;2.只在“*”之后有const的指針,稱為const指針;3.“*”前后都有const的指針,稱為指向const變量的const指針。2.3.4.3 vo

12、id指針void在作為函數(shù)類型和參數(shù)類型時(shí)為空類型,表示沒有返回值或參數(shù)。void修飾指針時(shí)稱為“無類型指針”,表示該指針可以指向任意類型的變量。雖然void指針可以指向任意類型的數(shù)據(jù),但是在使用void指針時(shí)必須對其進(jìn)行強(qiáng)制類型轉(zhuǎn)換成它所指向單元的實(shí)際類型,然后才可以使用 2.3.4.3 void指針【例2-9】void指針的聲明與使用。/=#include using namespace std;int main() int x = 100; void *p = &x; /定義void指針p指向x int *q = NULL; /定義整型指針q /cout*p = *pendl; /錯(cuò)誤,

13、非法使用指針p cout*p = *(int *)pendl; /正確,輸出p指向單元內(nèi)容 /q = p; /錯(cuò)誤,非法,void指針賦給整型指針 q = (int *)p; /正確,合法,void指針賦給整型指針 cout*q = *qendl; /輸出指針q指向單元內(nèi)容 return 0;/=2.3.4.3 void指針為什么要使用void指針因?yàn)関oid指針可以指向任意類型的數(shù)據(jù),所以使用void指針時(shí)把void指針?biāo)赶虻臄?shù)據(jù)給抽象化了,這樣可以增加程序的通用性 使用void指針的兩個(gè)例子void * memcpy(void *dest, const void *src, size_t

14、 len); void * malloc(unsigned int size);2.3.4.4 new和deleteC語言的動態(tài)內(nèi)存管理malloc()和free()函數(shù)主要缺點(diǎn)函數(shù)的返回值是void*類型 分配內(nèi)存單元時(shí)根據(jù)參數(shù)size的值來分配,無法檢查錯(cuò)誤分配到的內(nèi)存單元無法初始化C+中使用new和delete運(yùn)算進(jìn)行動態(tài)內(nèi)存管理2.3.4.4 new和delete【例2-11】使用new和delete動態(tài)管理內(nèi)存單元。/=#include using namespace std;int main() int *p = NULL; /定義整型指針p p = new int; /用new申

15、請可以存放一個(gè)整型數(shù)據(jù)的內(nèi)存單元 cout*p = *pendl; /輸出指針p指向單元的內(nèi)容 delete p; /delete釋放指針p指向內(nèi)存單元 return 0;/=通過new運(yùn)算得到的內(nèi)存單元是不會自動釋放的,必須通過delete運(yùn)算去釋放注意2.3.4.4 new和delete申請內(nèi)存空間并進(jìn)行初始化 指針變量 = new 數(shù)據(jù)類型(初值); 分配多個(gè)連續(xù)變量的存儲空間 使用new 和delete 指針變量 = new 數(shù)據(jù)類型元素個(gè)數(shù); delete 指針變量; 三種動態(tài)內(nèi)存管理的方式:兼容C語言的malloc/free方式,單個(gè)變量的new/delete方式,多個(gè)變量的new

16、 /delete 方式 2.3.5 引用引用就是某一變量的別名,對引用的操作與對變量直接操作完全一樣 引用的聲明方法 類型標(biāo)識符 &引用名 = 目標(biāo)變量名;“&”運(yùn)算符在變量的前面表示取地址運(yùn)算,在賦值運(yùn)算任的左側(cè)是引用運(yùn)算符,這種在不同的上下文環(huán)境中具有不同含義的現(xiàn)象,稱之為運(yùn)算符功能重載。2.3.5 引用【例2-12】使用引用訪問變量。/=#include using namespace std;int main() int x = 100; /定義整型變量x int &rx = x;/定義變量x的引用rx coutrx = rxendl;/輸出引用rx的內(nèi)容 rx = 200;/給引用r

17、x賦值 coutx = xendl;/輸出變量x的內(nèi)容 return 0;/=程序執(zhí)行后運(yùn)行的結(jié)果如下:rx = 100 x = 2002.3.5 引用【例2-13】編寫一個(gè)函數(shù),交換兩個(gè)整型變量的值。/=#include using namespace std;void swap(int &x, int &y) /定義swap函數(shù)用來交換兩個(gè)變量int tmp;tmp = x; x = y; y = tmp;int main()int x = 10, y = 20;cout交換前:x = x, y = yendl;swap(x,y); /調(diào)用swap函數(shù)進(jìn)行交換cout交換后:x = x,

18、y = yendl; return 0;/=通過函數(shù)交換兩個(gè)變量的值有三種形式:值傳遞、地址傳遞和引用傳遞。其中值傳遞不能實(shí)現(xiàn)交換的目的,引用傳遞和地址傳遞都可以實(shí)現(xiàn),但引用傳遞的形式更簡單。2.3.5 引用引用和const可以用const對引用加以限制,不允許改變該引用的值 const引用和語法const 類型標(biāo)識符 &引用名 = 目標(biāo)變量名;利用常引用作為函數(shù)形參,既能提高程序的執(zhí)行效率,又能保護(hù)傳遞給函數(shù)的數(shù)據(jù)不在函數(shù)中被改變,達(dá)到保護(hù)實(shí)參的目的 引用型參數(shù)應(yīng)該在能被定義為const的情況下,盡量定義為const。注意2.3.5 引用引用作為函數(shù)的返回值 【例2-14】引用作為函數(shù)的返回

19、值。#include using namespace std;int &max(int &x, int &y) /此函數(shù)的返回值為對參數(shù)x和y中大的那個(gè)變量的引用return (xy)?x:y; int main()int a=2,b=3;couta= a b= b endl;max(a,b)=4; couta= a b= b endl; return 0;由于函數(shù)的返回值為引用類型,所以可以為函數(shù)賦值,為函數(shù)賦的值賦給兩個(gè)參數(shù)中的大者,所以a的值為2,b的值為42.3.6 函數(shù)面向過程的C+程序中的函數(shù)與C語言中的函數(shù)基本相同面向?qū)ο蟮腃+程序中的函數(shù)有成員函數(shù)和公共函數(shù)之分主要討論面向過程

20、的C+程序中函數(shù)與C語言函數(shù)的區(qū)別2.3.6.1 函數(shù)原型聲明在函數(shù)尚未定義的情況下,先將函數(shù)的形式告訴編譯系統(tǒng),以便編譯能夠正常進(jìn)行 函數(shù)原型聲明的語法形式有兩種:(1)返回值類型 函數(shù)名(參數(shù)類型1, 參數(shù)類型2, .);(2)返回值類型 函數(shù)名(參數(shù)類型1 參數(shù)名1, 參數(shù)類型2 參數(shù)名2, .);函數(shù)原型聲明和函數(shù)定義是不同的。函數(shù)原型聲明不是一個(gè)獨(dú)立的完整的函數(shù)單位,它僅僅是一條語句,因此在函數(shù)原型聲明后面一定要加上分號。2.3.6.2 函數(shù)默認(rèn)參數(shù)在多次調(diào)用一個(gè)函數(shù)將實(shí)參傳遞給形參時(shí),其中可能有一個(gè)或幾個(gè)參數(shù),它們傳遞進(jìn)來的實(shí)參值多次相同在定義或聲明函數(shù)時(shí),給形參一個(gè)默認(rèn)值,如果在

21、調(diào)用時(shí)沒有給該形參傳遞實(shí)參值,則使用默認(rèn)值作為該形參的值;如果調(diào)用時(shí)給該形參傳遞了實(shí)參值,則使用實(shí)參的值作為該形參的值。 2.3.6.2 函數(shù)默認(rèn)參數(shù)【例2-16】求兩個(gè)或三個(gè)正整數(shù)中的最大值,使用帶有默認(rèn)參數(shù)的函數(shù)實(shí)現(xiàn)。/=#include using namespace std;int main() int max(int,int,int = 0);/帶有默認(rèn)參數(shù)的函數(shù)原型聲明int a = 5,b = 8,c = 10;coutmax of a and b is:max(a,b)endl;/調(diào)用默認(rèn)參數(shù)的函數(shù)coutmax of a, b and c is:max(a,b,c)endl;

22、return 0;int max(int a, int b, int c = 0) /定義帶有默認(rèn)參數(shù)的函數(shù)if(a b) a = b;if(a c) a = c;return a;/=2.3.6.2 函數(shù)默認(rèn)參數(shù)1.指定默認(rèn)值參數(shù)默認(rèn)值的位置:為了避免混淆,最好只在函數(shù)原型聲明時(shí)指定默認(rèn)值。2.當(dāng)只有部分形參帶有默認(rèn)值時(shí),帶有默認(rèn)值的參數(shù)必須放在形參表的右端。3.當(dāng)一個(gè)函數(shù)既是重載函數(shù),又是帶有默認(rèn)參數(shù)的函數(shù)時(shí),要注意不要出現(xiàn)二義性的問題注意調(diào)用帶有默認(rèn)參數(shù)的函數(shù)時(shí),實(shí)參的個(gè)數(shù)可以與形參的個(gè)數(shù)不同,對于實(shí)參未給出的,可以從形參的默認(rèn)值中獲得,利用這一特性,可以使函數(shù)的使用更加靈活。2.3.6

23、.3 函數(shù)與引用函數(shù)的參數(shù)是引用 當(dāng)使用引用作為函數(shù)的形參時(shí),引用不是一個(gè)單獨(dú)的變量,不需要在內(nèi)存中分配存儲單元,實(shí)參向形參傳遞的是變量的名字,而不是變量的地址。使用引用作為函數(shù)的形參可以部分代替指針,降低了程序的復(fù)雜度,提高了程序的執(zhí)行效率,同時(shí)也提高了程序的可讀性。 函數(shù)的返回值是引用 2.3.6.4 函數(shù)與constconst修飾函數(shù)的參數(shù)調(diào)用函數(shù)時(shí)用相應(yīng)的值初始化const常量函數(shù)體按照const所修飾部分進(jìn)行常量化 const修飾函數(shù)的返回值用于二目操作符重載函數(shù)并產(chǎn)生新對象const修飾整個(gè)函數(shù)這種情況發(fā)生在類的成員函數(shù)時(shí) const的位置放在函數(shù)參數(shù)表的后面 2.3.6.5 函數(shù)

24、重載一般情況下,一個(gè)函數(shù)名對應(yīng)一個(gè)功能 特殊情況下,一個(gè)函數(shù)名對應(yīng)多個(gè)功能功能是非常類似 參數(shù)不同【例2-18】使用add為函數(shù)名定義整數(shù)的加法和兩個(gè)浮點(diǎn)數(shù)的加法int add(int a,int b) /整數(shù)加法的add函數(shù)定義coutCall integer add function. endl;return a+b;float add(float a,float b) /浮點(diǎn)數(shù)加法的add函數(shù)定義coutCall float add function. endl;return a + b;2.3.6.5 函數(shù)重載函數(shù)重載需要函數(shù)參數(shù)的類型或個(gè)數(shù)必須至少有其中之一不同,函數(shù)返回值類型可以相

25、同也可以不同。但是,不允許參數(shù)的個(gè)數(shù)和類型都相同而只有返回值類型不同。從語法上來說,可以讓兩個(gè)或多個(gè)完全不相干的函數(shù)使用相同的函數(shù)名,進(jìn)行重載,但是這樣做使得程序的可讀性下降,不建議這樣做。使用同名函數(shù)進(jìn)行重載時(shí),重載函數(shù)在功能上應(yīng)該相近或?qū)儆谕活惡瘮?shù)。2.3.6.6 內(nèi)置函數(shù)調(diào)用函數(shù)時(shí)系統(tǒng)需要一定的時(shí)間和空間的開銷 當(dāng)函數(shù)體很小而又需要頻繁調(diào)用時(shí),運(yùn)行效率與代碼重用的矛盾變得很突出 系統(tǒng)在編譯時(shí)將所調(diào)用的內(nèi)置函數(shù)的代碼直接嵌入到主調(diào)函數(shù)中 執(zhí)行時(shí)就不會發(fā)生函數(shù)調(diào)用,而是順序執(zhí)行 2.3.6.6 內(nèi)置函數(shù)【例2-20】將函數(shù)聲明為內(nèi)置函數(shù)。/=#include using namespace

26、 std;int main()int x = 3, y = 5;int s;inline int add(int a, int b);/內(nèi)置函數(shù)原型s = add(x,y);/調(diào)用函數(shù)add couts = sendl; return 0;inline int add(int a,int b) return a+b; /定義內(nèi)置函數(shù)add/=2.3.6.6 內(nèi)置函數(shù)1.在聲明內(nèi)置函數(shù)時(shí),可以在函數(shù)聲明和函數(shù)定義的前面都寫上關(guān)鍵字inline,也可以只在其中一處寫上關(guān)鍵字inline,效果都是相同的。2.內(nèi)置函數(shù)是一種“以空間換時(shí)間”的策略。3.對函數(shù)進(jìn)行內(nèi)置聲明,只是程序員對編譯系統(tǒng)的一個(gè)建議

27、而非命令,并不一定只要聲明為內(nèi)置函數(shù)C+系統(tǒng)就一定會按內(nèi)置函數(shù)去處理,系統(tǒng)會根據(jù)實(shí)際情況決定是否這樣做。4.內(nèi)置函數(shù)的機(jī)制適用于被調(diào)函數(shù)規(guī)模較小而又被頻繁調(diào)用的情況注意2.3.7 名字空間1.為什么需要名字空間 引用名字空間的概念就是為了解決程序中名字沖突的問題 2.什么是名字空間 所謂名字空間就是一個(gè)由程序設(shè)計(jì)者命名的內(nèi)存區(qū)域 根據(jù)需要指定一些有名字的空間域,把一些全局標(biāo)識符放在各個(gè)名字空間中,從而避免與其他同名的全局標(biāo)識符混淆 2.3.7 名字空間3.如何使用名字空間 定義名字空間時(shí),語法如下:其中成員的類型包括:常量、變量、函數(shù)、結(jié)構(gòu)體、類、模板等,還可以是名字空間 namespace

28、名字空間名 定義成員2.3.7 名字空間定義名字空間舉例:namespace ns const int RATE = 0.08; double money; double tax() return money * RATE; namespace ns2 int count; 如果要訪問名字空間ns中的成員,可以采用名字空間:成員名的方法,如ns:RATE、ns:money、ns:tax()、ns:ns2:count等 可以看到,在訪問名字空間的成員時(shí)可能需要寫很長的一串名字,使用時(shí)不太方便,為此C+提供了一些簡化機(jī)制2.3.7 名字空間訪問名字空間中成員的簡化機(jī)制: (1)使用名字空間的別名

29、namespace Information . 可以用一個(gè)較短的縮寫作為別名來代替它。如:namespace Info = Information;(2)使用using名字空間的成員名 如:using ns:tax;后面訪問tax()時(shí)就相當(dāng)于ns:tax()(3)使用using namespace名字空間名 如:using namespace ns;這樣在using namespace聲明的作用域中,名字空間ns中的成員就好像在全局域聲明一樣,可以直接使用而不必加名字空間名限定2.3.7 名字空間4.無名的名字空間 沒有名字的名字空間 由于沒有名字空間名,在別的文件中無法訪問,它只能在本文件的作用域內(nèi)有效。相當(dāng)于將無名名字空間的成員的作用域限制在本文件內(nèi) 。namespace void func() coutfunc in noname namespace!endl; 2.3.7 名字空間5.標(biāo)準(zhǔn)名字空間std C+系統(tǒng)將標(biāo)準(zhǔn)C+庫中的所有標(biāo)識符都放在名為std的名字空間中定義

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論