第4章 類與復(fù)雜對(duì)象_第1頁(yè)
第4章 類與復(fù)雜對(duì)象_第2頁(yè)
第4章 類與復(fù)雜對(duì)象_第3頁(yè)
第4章 類與復(fù)雜對(duì)象_第4頁(yè)
第4章 類與復(fù)雜對(duì)象_第5頁(yè)
已閱讀5頁(yè),還剩48頁(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)介

第4章類與復(fù)雜對(duì)象4.1對(duì)象指針和this指針this指針是C++語(yǔ)言的一個(gè)特定機(jī)制,是一個(gè)常量,任何非靜態(tài)類成員函數(shù)使用該指針來(lái)處理對(duì)象。非靜態(tài)類成員函數(shù)是指,在聲明或定義該成員函數(shù)時(shí),沒(méi)有使用關(guān)鍵字static對(duì)其加以修飾的成員函數(shù)。4.1.1對(duì)象指針1.對(duì)象指針的說(shuō)明和使用一個(gè)對(duì)象指針指向的是該對(duì)象在內(nèi)存中的首地址。顯然,該對(duì)象指針的基類型是其指向的對(duì)象所屬的類的類型,它的定義形式為:

<類類型>

*

<指針名1>,*<指針名2>,…與C語(yǔ)言中取得普通變量在內(nèi)存中首地址的方法一樣,也可以通過(guò)取地址運(yùn)算符“&”來(lái)取得一個(gè)對(duì)象在內(nèi)存中的首地址。利用對(duì)象指針引用對(duì)象成員的基本形式為:

<對(duì)象指針名>-><數(shù)據(jù)成員> <對(duì)象指針名>-><成員函數(shù)>(<參數(shù)表>)或者

(*<對(duì)象指針名>).<數(shù)據(jù)成員>

(*<對(duì)象指針名>).<成員函數(shù)>(<參數(shù)表>)【例4.1】對(duì)象指針的示例。#include<iostream>usingnamespacestd;classMyTest41{

inta;public:Chap4class(inta1):a(a1){}voidprint(

);};voidMyTest41::print(

){

cout<<i<<endl;}voidmain(

){MyTest41mt(5),*pMt;

pMt=&mt;//pMt指向?qū)ο髆t

pMt->print(

);(*pMt).print(

);}程序輸出結(jié)果為:552.對(duì)象指針與函數(shù)對(duì)象指針的一個(gè)很重要的用法是用做函數(shù)參數(shù)或者作為函數(shù)的返回類型。使用對(duì)象指針做函數(shù)參數(shù)有兩點(diǎn)好處:(1)通過(guò)對(duì)象指針將要處理的對(duì)象的地址傳給形參,可以在被調(diào)用函數(shù)中改變?cè)搶?duì)象的值,實(shí)現(xiàn)函數(shù)之間的信息傳遞。(2)使用對(duì)象指針作參數(shù)僅傳遞實(shí)參的地址值給形參,而不進(jìn)行副本的復(fù)制,這樣可以減少開(kāi)銷,提高運(yùn)行效率。【例4.2】指針作為函數(shù)參數(shù)的示例。#include<iostream>usingnamespacestd;classCh42class{

intn;public:Ch42class(intx){n=x;}Ch42class(

){n=0;}voidcopy(ch42class*ch){ //對(duì)象指針做函數(shù)參數(shù)

n=ch->n;}voidprint(

){

cout<<"n="<<n<<endl;}};Ch42classch1(2); //全局對(duì)象Ch42class*func(

){ //返回對(duì)象指針

return&ch1;}voidmain(

){Ch42classch2(5),ch3;ch3.copy(&ch2);ch3.print(

);

func(

)->print(

); //注意func(

)返回的是一個(gè)對(duì)象指針}運(yùn)行結(jié)果:n=5n=24.1.2this指針1.什么是this指針this指針是由系統(tǒng)在編譯時(shí)自動(dòng)產(chǎn)生的一個(gè)指向?qū)ο笞陨淼闹羔槪?dāng)對(duì)象調(diào)用一個(gè)成員函數(shù)時(shí),會(huì)把this指針作為一個(gè)隱含參數(shù)傳遞給成員函數(shù)。成員函數(shù)接收到該指針后,就可以利用該指針回訪對(duì)象的數(shù)據(jù)成員。this指針是屬于對(duì)象的,它的類型與對(duì)象的類型是一致的。例如,myComplex類的對(duì)象指針的類型是myComplex*。this指針是一個(gè)常指針,指向?qū)ο蟮氖椎刂罚荒鼙恍薷??!纠?.3】this指針的示例。#include<iostream>usingnamespacestd;classCh43class{

intn;public:Ch43class(intx){n=x;}Ch43class(

){n=0;}voidprint(

){

cout<<"n="<<n<<endl;}};voidmain(

){Ch43classch1(10),ch2(5),*pCh;

pCh=&ch1;

pCh->print(

);

pCh=&ch2;

pCh->print(

);}運(yùn)行結(jié)果:n=10n=5

2.何時(shí)顯式使用this指針正如上面所看到的,this指針通常供系統(tǒng)用于判斷成員函數(shù)所使用的到底是哪一個(gè)數(shù)據(jù)成員副本。但是,當(dāng)需要在一個(gè)成員函數(shù)內(nèi)標(biāo)識(shí)被該成員函數(shù)操作的對(duì)象時(shí),就需要顯式使用this指針。【例4.4】顯式使用this指針的示例。#include<iostream>usingnamespacestd;classCh44class{

intn;public:Ch44class(intx){n=x;}Ch44class(

){n=0;}voidcopy(ch44class*ch){

if(this!=ch) //通過(guò)判斷,避免不必要的復(fù)制

this->n=ch->n; //顯式標(biāo)明n,避免閱讀程序產(chǎn)生誤解

}voidprint(

){

cout<<"n="<<n<<endl;}Ch44classfunc(

){return*this; //返回對(duì)象自身

}};voidmain(

){Ch44classch1(10);ch1.print(

);ch1.func(

).print(

);}運(yùn)行結(jié)果:n=10n=104.2對(duì)象數(shù)組和對(duì)象指針數(shù)組對(duì)象數(shù)組是指數(shù)組元素為類對(duì)象的數(shù)組。對(duì)象數(shù)組的定義的基本格式為:

<類名><對(duì)象數(shù)組名>[<長(zhǎng)度>]…這里,<類名>用于指明該數(shù)組元素的基類型,〈對(duì)象數(shù)組名〉同一般標(biāo)志符的定義,方括號(hào)里的<長(zhǎng)度>給出某一維的元素個(gè)數(shù)。一維對(duì)象數(shù)組只有一個(gè)方括號(hào),二維對(duì)象數(shù)組有兩個(gè)方括號(hào),等等。【例4.5】使用對(duì)象數(shù)組的示例。#include<iostream>usingnamespacestd;classChap45class{

intn;public:Chap45class(intx);Chap45class(

);~Chap45class(

);};Chap45class::Chap45class(intx){n=x;

cout<<"ConstructorChap45class(int)called:"<<n<<endl;}Chap45class::Chap45class(

){

cout<<"ConstructorChap45class(

)called."<<endl;}Chap45class::~Chap45class(

){

cout<<"Destructorcalled."<<endl;}voidmain(

){Chap45classar1[2]={1,2},ar2[2];

cout<<"Endofmainfunction."<<endl;}運(yùn)行結(jié)果:ConstructorChap45class(int)called:1ConstructorChap45class(int)called:2ConstructorChap45class(

)called.ConstructorChap45class(

)called.Endofmainfuction.Destructorcalled.Destructorcalled.Destructorcalled.Destructorcalled4.2.2對(duì)象指針數(shù)組對(duì)象指針數(shù)組是指元素為指向類對(duì)象的指針的數(shù)組。其基本形式為:

<類名>*<數(shù)組名>[<長(zhǎng)度>]…對(duì)象指針數(shù)組與普通數(shù)組在說(shuō)明和用法上類似,只是數(shù)組的元素不同?!纠?.6】對(duì)象指針數(shù)組的示例。#include<iostream>usingnamespacestd;classChap46class{

inti;public:Chap46class(intx){i=x;}voidprint(

);};voidChap46class::print(

){

cout<<i<<endl;}voidmain(

){Chap46classch1(5),ch2(4);Chap46class*m[2]={&ch1,&ch2}; //定義含有各元素的對(duì)象指針數(shù)組

m[0]->print(

);m[1]->print(

);}運(yùn)行結(jié)果:544.3對(duì)象引用對(duì)象引用就是給類對(duì)象取一個(gè)別名。為一個(gè)對(duì)象定義引用的方法,與為一個(gè)普通的實(shí)體定義引用的方法類似。【例4.7】對(duì)象引用的示例。#include<iostream>usingnamespacestd;classCh47class{

intn;public:Ch47class(intx){n=x;}Ch47class(

){n=0;}voidcopy(constCh47class&ch){ //對(duì)象引用做函數(shù)參數(shù)

n=ch.n;}

voidprint(

){

cout<<"n="<<n<<endl;}};Ch47classch1(2);//全局對(duì)象Ch47class&func(

){//返回對(duì)象引用

returnch1;}voidmain(

){Ch47classch2(5),ch3;ch3.copy(ch2);ch3.print(

);

func(

).print(

);//注意func(

)返回的是一個(gè)對(duì)象引用

getchar(

);}運(yùn)行結(jié)果:n=5n=24.4堆對(duì)象系統(tǒng)為每個(gè)程序都提供了一個(gè)在程序執(zhí)行時(shí)可用的內(nèi)存池,這個(gè)可用內(nèi)存池被稱為程序的空閑存儲(chǔ)區(qū)(freestore)或堆(heap)。堆對(duì)象就是程序在運(yùn)行時(shí)根據(jù)需要隨時(shí)被創(chuàng)建或釋放的對(duì)象,這些對(duì)象存儲(chǔ)在堆中。C++程序的內(nèi)存格局通常分為4個(gè)區(qū):數(shù)據(jù)區(qū)(dataarea)、代碼區(qū)(codearea)、棧區(qū)(stackarea)、堆區(qū)(自由存儲(chǔ)區(qū))(heaparea)。常量、全局變量和靜態(tài)數(shù)據(jù)存放在數(shù)據(jù)區(qū),所有類成員函數(shù)和非成員函數(shù)的代碼存放在代碼區(qū),為運(yùn)行函數(shù)而分配的局部變量、函數(shù)參數(shù)、返回?cái)?shù)據(jù)和返回地址等存放在棧區(qū),余下的空間都被作為堆區(qū)。1.用運(yùn)算符new創(chuàng)建堆對(duì)象使用運(yùn)算符new可以動(dòng)態(tài)地創(chuàng)建堆對(duì)象。其基本格式為:

new<類型說(shuō)明符>(<初值列表>)例如:Ch47class*pch1,*pch2;pch1=newCh47class(2);pch2=newCh47class(

); //等價(jià)于pch2=newCh47class;2.用運(yùn)算符delete釋放堆對(duì)象運(yùn)算符delete用于釋放從堆中所分配的內(nèi)存區(qū),其使用格式與第2章相關(guān)內(nèi)容相似。不同的是,當(dāng)使用delete刪除堆對(duì)象時(shí),類的析構(gòu)函數(shù)會(huì)被自動(dòng)執(zhí)行。例如:deletepch1;【例4.8】動(dòng)態(tài)創(chuàng)建和釋放對(duì)象的示例。#include<iostream>usingnamespacestd;classCh48class{

intn;public:Ch48class(intx);Ch48class(

);~Ch48class(

);};Ch48class::Ch48class(intx){n=x;

cout<<"Constructorch48class(int)called:"<<n<<endl;}Ch48class::Ch48class(

){

cout<<"ConstructorCh48class(

)called."<<endl;}Ch48class::~ch48class(

){ n=0;cout<<"Destructorcalled:"<<n<<endl;}voidmain(

){Ch48class*pch1,*pch2;pch1=newCh48class(5); //分配空間

pch2=newCh48class; //分配空間

if(!pch1||!pch2){ //檢查空間

cout<<"OutofMemory!"<<endl;return;}

cout<<"Endofmainfunction."<<endl;deletepch1;deletepch2;}運(yùn)行結(jié)果:ConstructorCh48class(int)called:5ConstructorCh48class(

)called:0Endofmainfunction.Destructorcalled.Destructorcalled.3.用運(yùn)算符new創(chuàng)建堆對(duì)象數(shù)組除了使用運(yùn)算符new創(chuàng)建一個(gè)堆對(duì)象外,還可以利用它創(chuàng)建一個(gè)堆對(duì)象數(shù)組。其基本格式為:

new<類型說(shuō)明符><數(shù)組名>[長(zhǎng)度]…在使用new創(chuàng)建堆對(duì)象數(shù)組時(shí),不能給數(shù)組元素賦初值。如:Ch48class*pch3;pch3=newCh48class[5];除了利用new創(chuàng)建一維數(shù)組外,還可以創(chuàng)建二維數(shù)組和多維數(shù)組。例如:Ch48class(*pch4)[3];pch4=newCh48class[2][3];4.用運(yùn)算符delete釋放堆對(duì)象數(shù)組使用運(yùn)算符new分配的堆對(duì)象數(shù)組,需要使用delete運(yùn)算進(jìn)行釋放,格式為:

delete[

]<數(shù)組名>這里,[

]一定不能省略,否則編譯時(shí),系統(tǒng)將給出錯(cuò)誤信息。另外,無(wú)論二維數(shù)組,還是多維數(shù)組,在釋放時(shí)只需要使用一個(gè)[

]。例如,釋放前面用new分配的一維數(shù)組pch3和pch4:delete[]pch3;delete[]pch4;【例4.9】動(dòng)態(tài)數(shù)組的示例。#include<iostream>usingnamespacestd;classCh49class{

intn;public:Ch49class(intx);Ch49class(

);~Ch49class(

);};Ch49class::Ch49class(intx){n=x;

cout<<"Constructorch49class(int)called:"<<n<<endl;}Ch49class::Ch49class(

){

cout<<"ConstructorCh49class(

)called."<<endl;}Ch49class::~Ch49class(

){

cout<<"Destructorcalled."<<endl;}voidmain(

){Ch49class*ch1;ch1=newCh49class[2];//分配空間

if(!ch1){//檢查空間

cout<<"OutofMemory!"<<endl;return;}

cout<<"Endofmainfunction."<<endl;delete[]ch1;//釋放空間}運(yùn)行結(jié)果:ConstructorCh48class(

)called.ConstructorCh48class(

)called.Endofmainfunction.Destructorcalled.Destructorcalled.【例4.10】統(tǒng)計(jì)某班學(xué)生的英語(yǔ)和數(shù)學(xué)的平均成績(jī)的例子。#include<iostream>#include<string.h>usingnamespacestd;classCh410class{charsno[9];floatEnglish,math,avg;public:Ch410class(

):english(0),math(0){sno[0]='\0';}voidinput(

){

cin>>sno>>english>>math;}voidaverage(

){

avg=(english+math)/2;}

voidprint(

){

cout<<"sno="<<sno<<",averagescore:"<<avg<<endl;}};voidmain(

){Ch410class*pCh;

intn;

cout<<"inputn:"<<endl;

cin>>n; //輸入學(xué)生的人數(shù)

pCh=newCh410class[n]; //根據(jù)人數(shù)動(dòng)態(tài)創(chuàng)建數(shù)組

if(pCh==NULL)return;

for(inti=0;i<n;i++)

pCh[i].input(

);

for(inti=0;i<n;i++){

pCh[i].average(

);

pCh[i].print(

);}delete[]pCh; //釋放pCh所指向各對(duì)象占用的空間}運(yùn)行結(jié)果:inputn:3↙0601018967↙0601027386↙0601037890↙sn0:060101,averagescore:78sn0:060102,averagescore:79.5sn0:060103,averagescore:844.5const特性有些對(duì)象允許修改,有些對(duì)象不允許修改;有些成員函數(shù)需要修改數(shù)據(jù)成員,而有些成員函數(shù)不需要修改數(shù)據(jù)成員。在C++語(yǔ)言中可以通過(guò)使用const關(guān)鍵字來(lái)達(dá)到數(shù)據(jù)的安全性。4.5.1常對(duì)象使用const關(guān)鍵字聲明的對(duì)象稱為常對(duì)象(constobject)。常對(duì)象的聲明形式如下:const<類名><對(duì)象名>也可以將類名放在最左邊,寫成<類名>const<對(duì)象名>

常對(duì)象在聲明時(shí)一定要賦初值,并且該對(duì)象不能被更新。例如:classA{

intx,y;public:

A(inti=0,intj=0){x=i;y=j;}//...};constAobj1;Aconstobj2(2,3);4.5.2常對(duì)象成員1.常數(shù)據(jù)成員用const關(guān)鍵字聲明的數(shù)據(jù)成員稱為常數(shù)據(jù)成員。常數(shù)據(jù)成員的值也是不能改變的,只能通過(guò)構(gòu)造函數(shù)的參數(shù)初始化列表對(duì)其進(jìn)行初始化。例如:classA{constintx; //常數(shù)據(jù)成員public:

A(int

i):x(i){ //常數(shù)據(jù)成員通過(guò)初始化列表獲得初值

}voidfun(

){

cout<<"x="<<x<<endl;}};Aobj(1);2.常成員函數(shù)用const關(guān)鍵字聲明的成員函數(shù)稱為常成員函數(shù)。與普通的成員函數(shù)不同,常成員函數(shù)只能引用類中的數(shù)據(jù)成員,而不能進(jìn)行修改。常成員函數(shù)的說(shuō)明格式為:

<類型><函數(shù)名>(<參數(shù)列表>)const;【例4.11】試分析下面程序的輸出。#include<iostream>usingnamespacestd;classA{public:constintx; //常數(shù)據(jù)成員

inty;public:

A(inta,intb);voidprint(

)const; //常成員函數(shù)

voidprint(

);};A::A(inta,int

b):x(a){y=b;}voidA::print(

)const{

cout<<"x="<<x<<",y="<<y<<endl;}voidA::print(

){

cout<<"x="<<x<<endl;}intmain(

){Aobj1(1,2);constAobj2(3,4); //常對(duì)象

obj1.print(

);obj2.print(

);return0;}運(yùn)行結(jié)果:x=1x=3,y=4C++語(yǔ)言中成員函數(shù)和數(shù)據(jù)成員如表4.1所示。表4.1成員函數(shù)和數(shù)據(jù)成員數(shù)據(jù)成員非常成員函數(shù)常成員函數(shù)非常數(shù)據(jù)成員允許引用和修改允許引用,不能修改常數(shù)據(jù)成員允許引用,但不能修改允許引用,不能修改常對(duì)象中的數(shù)據(jù)成員不允許引用和修改允許引用,不能修改4.5.3指向?qū)ο蟮某V羔樑c指向常對(duì)象的指針在程序中也可以將指向?qū)ο蟮闹羔樧兞柯暶鳛閏onst類型,這樣指針值將始終不變,保持為初始值。例如:Aobj1(1,2),obj2(3,4) //類A的定義參見(jiàn)例4.11A*constpobj; //const位置在指針之前pobj=&obj1; //pobj指向?qū)ο髈bj1,此后不允許改變pobj=&obj2; //錯(cuò)誤,pobj的值不允許改變?nèi)绻粋€(gè)對(duì)象被定義為常對(duì)象,那么指向該對(duì)象的指針必須是指向常對(duì)象的指針。例如:constAobj(1,2); //類A的定義參見(jiàn)例4.11constA*pobj1=&obj; //正確,pobj1為指向常對(duì)象的指針A*constpobj2=&obj; //錯(cuò)誤,pobj2為常指針A*pobj3=&obj; //錯(cuò)誤,pobj3為普通的對(duì)象指針指向常對(duì)象的指針,也可以指向普通對(duì)象,但此時(shí)不能通過(guò)該指針修改對(duì)象的數(shù)據(jù)成員。例如:Aobj(1,2); //類A的定義參見(jiàn)例4.11constA*pobj=&obj; //指向常對(duì)象的指針pobj指向一個(gè)普通對(duì)象pobj->x=3; //錯(cuò)誤,不能通過(guò)pobj修改obj的數(shù)據(jù)成員obj.x=3; //正確,沒(méi)有通過(guò)pobj修改,obj也不是常變量4.5.4對(duì)象的常引用const關(guān)鍵字也可以用于修飾對(duì)象引用,這就是對(duì)象的常引用?!纠?.12】試分析下面程序的輸出。#include<iostream>usingnamespacestd;classA{

inta;public:

A(intn){a=n;}

int

getA(

)const{returna;}};int

add(constA&obj1,constA&obj2);intmain(

){Aa1(1),a2(20);

ints=add(a1,a2);

cout<<add(a1,a2)<<endl;return0;}int

add(constA&obj1,constA&obj2){

intsum=obj1.getA(

)+obj2.getA(

);returnsum;}運(yùn)行結(jié)果:214.6漸增式軟件開(kāi)發(fā)——類組合類組合是軟件復(fù)用的一種重要方式。零件的生產(chǎn)需要使用相應(yīng)的模具,多種零件組裝在一起可以形成復(fù)雜的零件。而對(duì)象的創(chuàng)建正是需要用到類這個(gè)模型,對(duì)象通過(guò)組裝就可以形成更復(fù)雜的對(duì)象,這就是面向?qū)ο蟪绦蛟O(shè)計(jì)中一種重要的設(shè)計(jì)途徑。4.6.1類組合的一般形式類組合的一般形式為:classC{

類名1子對(duì)象1

類名2子對(duì)象2……

類名n子對(duì)象n};例如:

classX{

inti;public;

X(int

a){i=a;}voidprint(

){

cout<<i<<endl;}};classY{

inti;Xx;public:

Y(inti1,i2):X(i1),i(i2){}};這里,類Y中就組裝了一個(gè)類X的對(duì)象x。4.6.2子對(duì)象的初始化在類組合中,一個(gè)重要的問(wèn)題就是如何進(jìn)行初始化子對(duì)象。具有子對(duì)象的類,可以采用常規(guī)的方法來(lái)初始化自己的普通數(shù)據(jù)成員,但子對(duì)象的初始化要交由它自身的構(gòu)造函數(shù)來(lái)完成。子對(duì)象的初始化一定要以初始化列表的形式進(jìn)行,絕對(duì)不允許放到類C的構(gòu)造函數(shù)體內(nèi)完成,例如以下形式是錯(cuò)誤的:C::C(參數(shù)表0){子對(duì)象1(參數(shù)表1);

子對(duì)象2(參數(shù)表2);…

子對(duì)象n(參數(shù)表n);//類C中普通數(shù)據(jù)成員的初始化代碼}【例4.13】子對(duì)象的初始化。#include<iostream>usingnamespacestd;classA{

inti;public:

A(inti1){i=i1;

cout<<"A(int)called."<<endl;}~A(

){

cout<<"~A(

)called."<<endl;}voidprint(

){

cout<<i<<endl;}};classX{

inti;public:

X(inti1){i=i1;

cout<<"X(int)called."<<endl;}~X(

){

cout<<"~X(

)called."<<endl;}voidprint(

){

cout<<i<<endl;}};classY{

inti;Xx;Aa;public:

Y(inti1):a(0),x(1){i=i1;

cout<<"Y(int)called."<<endl;}~Y(

){

cout<<"~Y(

)called."<<endl;}voidprint(

){

cout<<i<<endl;}};voidmain(

){Yy(3);}運(yùn)行結(jié)果:X(int)called.A(int)called.Y(int)called.~Y(

)called.~A(

)called.~X(

)called.4.6.3類組合舉例下面定義一個(gè)描述圓錐體的類,圓

溫馨提示

  • 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)論