靜態(tài)成員與友元_第1頁
靜態(tài)成員與友元_第2頁
靜態(tài)成員與友元_第3頁
靜態(tài)成員與友元_第4頁
靜態(tài)成員與友元_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

靜態(tài)成員與友元演示文稿當(dāng)前1頁,總共36頁。優(yōu)選靜態(tài)成員與友元當(dāng)前2頁,總共36頁。靜態(tài)成員與友元

學(xué)習(xí)本章后,應(yīng)該掌握聲明靜態(tài)數(shù)據(jù)成員,掌握使用靜態(tài)成員函數(shù)以及靜態(tài)成員函數(shù)與特定對象無關(guān)的特性。把握友元的使用,理解友元作用的局限性。當(dāng)前3頁,總共36頁。第六章靜態(tài)成員與友元函數(shù)

§6-1靜態(tài)成員

§6-2友元

§6-3const數(shù)據(jù)保護(hù)當(dāng)前4頁,總共36頁。§6-1靜態(tài)成員

6.1.1靜態(tài)成員的需要性有一些屬性是類中所有成員所共有的,屬于類的一部分,但既不適于用普通成員表示,也不適于全局變量表示的數(shù)據(jù),用靜態(tài)成員表示。對象個數(shù)對象鏈表頭、尾指針類的狀態(tài)一個類對象的public成員可被本類的其他對象存取,即可供所有對象使用,但是此類的每個對象都各自擁有一份,不存在真正意義上的共享成員。所以,C++提供了靜態(tài)成員,用以解決同一個類的不同對象之間數(shù)據(jù)成員和函數(shù)的共享問題。當(dāng)前5頁,總共36頁?!?-1靜態(tài)成員

聲明為static的類成員為靜態(tài)成員,解決同一個類的不同對象之間的數(shù)據(jù)和函數(shù)共享問題。靜態(tài)成員的特點(diǎn)是:不管這個類創(chuàng)建了多少個對象,其靜態(tài)成員在內(nèi)存中只保留一份拷貝,這個拷貝為該類的所有對象所共享。類的靜態(tài)成員有兩種:靜態(tài)數(shù)據(jù)成員和靜態(tài)函數(shù)成員,下面分別對它們進(jìn)行討論。當(dāng)前6頁,總共36頁。6.1.2靜態(tài)數(shù)據(jù)成員

面向?qū)ο蠓椒ㄖ羞€有類屬性(classattribute)的概念,類屬性是描述類的所有對象的共同特征的一個數(shù)據(jù)項,對于任何對象實例,它的屬性值是相同的,C++通過靜態(tài)數(shù)據(jù)成員來實現(xiàn)類屬性。靜態(tài)數(shù)據(jù)成員:是類的數(shù)據(jù)成員的一種特例,采用static關(guān)鍵字來定義,屬于類屬性,每個類只有一個拷貝,由該類的所有對象共同維護(hù)和使用,從而實現(xiàn)了同類的不同對象之間的數(shù)據(jù)共享。

當(dāng)前7頁,總共36頁。6.1.2靜態(tài)數(shù)據(jù)成員

靜態(tài)數(shù)據(jù)成員的定義分為兩個必不可少的部分:類內(nèi)聲明、類外初始化。在類內(nèi),聲明靜態(tài)數(shù)據(jù)成員的格式為:

數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名=初始值;

static

數(shù)據(jù)類型靜態(tài)數(shù)據(jù)成員名;

在類外初始化的形式為:

除了在初始化時可以在類外通過類對靜態(tài)成員賦初值外,其他情況下對靜態(tài)成員的存取規(guī)則與一般成員相同。即:在類內(nèi)可以任意存??;在類外,通過對象只能訪問存取屬性為public的成員。

當(dāng)前8頁,總共36頁。6.1.2靜態(tài)數(shù)據(jù)成員對靜態(tài)數(shù)據(jù)成員的定義與使用應(yīng)注意

:靜態(tài)數(shù)據(jù)成員的訪問屬性同普通數(shù)據(jù)成員一樣,可以為public、private和protected。靜態(tài)數(shù)據(jù)成員脫離具體對象而獨(dú)立存在,其存儲空間是獨(dú)立分配的,不是任何對象存儲空間的一部分,但邏輯上所有的對象都共享這一存儲單元,所以對靜態(tài)數(shù)據(jù)成員的任何操作都將影響共享這一存儲單元的所有對象。靜態(tài)數(shù)據(jù)成員是一種特殊的數(shù)據(jù)成員,它表示類屬性,而不是某個對象單獨(dú)的屬性,它在程序開始產(chǎn)生,在程序結(jié)束時消失。靜態(tài)數(shù)據(jù)成員具有靜態(tài)生存期。由于在類的定義中僅僅是對靜態(tài)數(shù)據(jù)成員進(jìn)行了引用性聲明,因此必須在文件作用域的某個地方對靜態(tài)數(shù)據(jù)成員進(jìn)行定義并初始化,即應(yīng)在類體外對靜態(tài)數(shù)據(jù)成員進(jìn)行初始化(靜態(tài)數(shù)據(jù)成員的初始化與它的訪問控制權(quán)限無關(guān))。靜態(tài)數(shù)據(jù)成員初始化時前面不加static關(guān)鍵字,以免與一般靜態(tài)變量或?qū)ο蠡煜?。由于靜態(tài)數(shù)據(jù)成員是類的成員,因此在初始化時必須使用類作用域運(yùn)算符::限定它所屬的類。當(dāng)前9頁,總共36頁。12345678classStudent{private:char*Name;intNo;

staticintcountS;};//在類外對靜態(tài)成員初始化如下:intStudent::countS=0;例如:我們對某學(xué)校不同學(xué)生的特性進(jìn)行抽象,找出共性設(shè)計一個學(xué)生類Student,如果需要統(tǒng)計學(xué)生的總?cè)藬?shù),可以在類外定義一個全局變量。但是類外的全局變量不受類存取控制的保護(hù)。因此可以將學(xué)生人數(shù)定義為靜態(tài)成員,即學(xué)生類的類屬性,設(shè)計的Student類如下:注意:

對靜態(tài)數(shù)據(jù)成員的訪問還可以通過類的成員函數(shù)來進(jìn)行。

6.1.2靜態(tài)數(shù)據(jù)成員P335例子當(dāng)前10頁,總共36頁。#include<iostream.h>classMyclass{public:Myclass(int,int,int);voidGetNumber();voidGetSum();private:intA,B,C;staticintSum;};intMyclass::Sum=0;Myclass(inta,intb,intc){A=a;B=b;C=c;Sum+=A+B+C;}voidGetNumber(){cout<<“Number=”<<A<<“,”<<B<<“,”<<C<<endl;}§6-1靜態(tài)成員voidGetSum(){cout<<“Sum=”<<Sum<<endl;}voidmain(){MyclassM(3,7,10),N(14,9,11);M.GetNumber();N.GetNumber();M.GetSum();N.GetSum();}Number=3,7,10Number=14,9,11Sum=54Sum=54當(dāng)前11頁,總共36頁。6.1.3靜態(tài)成員函數(shù)

靜態(tài)數(shù)據(jù)成員為類屬性,在定義類后、建立對象前就存在。因此,在建立對象前不能通過成員函數(shù)存取靜態(tài)數(shù)據(jù)成員。C++提供了靜態(tài)成員函數(shù),用來存取類的靜態(tài)成員。靜態(tài)成員函數(shù)是用關(guān)鍵字static聲明的成員函數(shù),它屬于整個類而不屬于類中的某個對象,是該類的所有對象共享的成員函數(shù)。靜態(tài)成員函數(shù)可以在類體內(nèi)定義。也可以在類內(nèi)聲明為static,在類外定義。當(dāng)在類外定義時,不能再使用static關(guān)鍵字作為前綴。

靜態(tài)函數(shù)成員的調(diào)用形式有如下兩種:

(1)通過類名調(diào)用靜態(tài)成員函數(shù);

(2)通過對象調(diào)用靜態(tài)成員函數(shù);當(dāng)前12頁,總共36頁。6.1.3靜態(tài)成員函數(shù)

(1)通過類名調(diào)用靜態(tài)成員函數(shù)靜態(tài)函數(shù)成員為類的全體對象而不是部分對象服務(wù),與類相聯(lián)系而不與類的對象聯(lián)系,因此訪問靜態(tài)函數(shù)成員時,可以直接使用類名。格式如下:

對象.靜態(tài)成員函數(shù)

類名::靜態(tài)成員函數(shù);(2)通過對象調(diào)用靜態(tài)成員函數(shù),格式為:注意:

通過類名訪問靜態(tài)成員函數(shù)不受靜態(tài)成員函數(shù)訪問權(quán)限的控制。例p338當(dāng)前13頁,總共36頁。6.1.3靜態(tài)成員函數(shù)通過對象調(diào)用靜態(tài)成員函數(shù)應(yīng)注意:

通過對象訪問靜態(tài)成員函數(shù)的前提條件為對象已經(jīng)建立。靜態(tài)成員函數(shù)的訪問權(quán)限同普通成員函數(shù)一樣。靜態(tài)成員函數(shù)也可以省略參數(shù)、使用默認(rèn)形參值、以及進(jìn)行重載。靜態(tài)成員函數(shù)與普通成員函數(shù)在使用還有如下區(qū)別:由于靜態(tài)成員函數(shù)在類中只有一個拷貝(副本),因此它訪問對象的成員時要受到一些限制:靜態(tài)成員函數(shù)可以直接訪問類中說明的靜態(tài)成員,但不能直接訪問類中的非靜態(tài)成員;若要訪問非靜態(tài)成員,必須通過參數(shù)傳遞的方式得到相應(yīng)的對象,再通過對象來訪問。由于靜態(tài)成員是獨(dú)立于類對象而存在的,因此靜態(tài)成員沒有this指針。當(dāng)前14頁,總共36頁。12345678910111213141516/**************************************p7_9.cpp**含有對象計數(shù)器的學(xué)生類**************************************/#include<iostream>usingnamespacestd;classStudent{private:char*Name;intNo;

staticintcountS;public:

staticintGetCount(){returncountS;}【例7-9】使用靜態(tài)成員維護(hù)內(nèi)存中Student類對象的個數(shù)(對象計數(shù)器)。分析:為了維護(hù)內(nèi)存中Student類對象的個數(shù),除了定義一個靜態(tài)數(shù)據(jù)成員存儲類對象個數(shù)外,還要在所有可能建立對象、刪除對象的場合記載對對象個數(shù)的修改。靜態(tài)數(shù)據(jù)成員靜態(tài)成員函數(shù)當(dāng)前15頁,總共36頁。1718192021222324252627282930313233343536

Student(char*="",int=0);Student(Student&);~Student();};Student::Student(char*Name,intNo){this->Name=newchar[strlen(Name)+1];strcpy(this->Name,Name);this->No=No;

++countS;cout<<"constructing:"<<Name<<endl;}Student::Student(Student&r){Name=newchar[strlen(r.Name)+1];strcpy(Name,r.Name);No=r.No;++countS;cout<<"copyconstructing:"<<r.Name<<endl;}靜態(tài)數(shù)據(jù)成員p339當(dāng)前16頁,總共36頁。37383940414243444546474849505152535455565758

Student::~Student(){cout<<"destructing:"<<Name<<endl;delete[]Name;--countS;}intStudent::countS=0;intmain(){cout<<Student::GetCount()<<endl;//使用類調(diào)用靜態(tài)成員函數(shù)

Students1("Antony");//建立一個新對象

cout<<s1.GetCount()<<endl;//通過對象調(diào)用靜態(tài)成員函數(shù)

Students2(s1);//利用已有對象建立一個新對象

cout<<s1.GetCount()<<endl;StudentS3[2];//建立一個對象數(shù)組

cout<<Student::GetCount()<<endl;Student*s4=newStudent[3];//建立一動態(tài)對象數(shù)組

cout<<Student::GetCount()<<endl;delete[]s4;//刪除動態(tài)對象數(shù)組

cout<<Student::GetCount()<<endl;return0;}運(yùn)行結(jié)果:0constructing:Antony1copyconstructing:Antony2constructing:constructing:4constructing:constructing:constructing:7destructing:destructing:destructing:4destructing:destructing:destructing:Antonydestructing:Antony當(dāng)前17頁,總共36頁?!?-2友元6.2.1需要友元的原因

普通函數(shù)需要直接訪問一個類的保護(hù)或私有數(shù)據(jù)成員。友元提供了不同類對象的成員函數(shù)之間、類的成員函數(shù)與一般函數(shù)之間進(jìn)行數(shù)據(jù)共享的機(jī)制。即通過友元的方式,一個一般函數(shù)可以訪問一個類的私有數(shù)據(jù),一個類可訪問另一個類的私有數(shù)據(jù)。方便編程,但破壞了類的封裝。

友元不是類的成員,但它可以訪問類的任何成員(包括私有成員)。聲明為友元的外界對象既可以是另一個類的成員函數(shù),也可以是不屬于任何類的一般的函數(shù),稱之為友元函數(shù);友元也可以是整個的一個類,稱之為友元類。

當(dāng)前18頁,總共36頁。6.2.2友元函數(shù)

友元函數(shù)是在類定義中由關(guān)鍵字friend修飾的非成員函數(shù)。其格式為:friend返回類型函數(shù)名(形參表)

{

…//函數(shù)體

}注意:友元函數(shù)的定義與成員函數(shù)一樣,只是在類中用關(guān)鍵字friend予以說明。但友元函數(shù)是一個普通的函數(shù),它不是本類的成員函數(shù),因此在調(diào)用時不能通過對象調(diào)用。友元函數(shù)也可以在類內(nèi)聲明,在類外定義。友元函數(shù)對類成員的存取與成員函數(shù)一樣,可以直接存取類的任何存取控制屬性的成員;可通過對象存取形參、函數(shù)體中該類類型對象的所有成員。private、protected、public訪問權(quán)限與友員函數(shù)的聲明無關(guān),因此原則上,友元函數(shù)聲明可以放在類體中任意部分,但為程序清晰,一般放在類體的后面。當(dāng)前19頁,總共36頁。1234567891011121314/******************************************p7_10.cpp**計算火車旅途時間的友元函數(shù)******************************************/#include<iostream>usingnamespacestd;classClock{private:intH,M,S;public:

voidShowTime(){cout<<H<<":"<<M<<":"<<S<<endl; }

voidSetTime(intH=0,intM=0,intS=0){this->H=H,this->M=M,this->S=S; }【例】使用友元函數(shù)計算某次火車的旅途時間。分析:為了簡化問題,分別用兩個Clock類對象表示某次火車出發(fā)時間、到達(dá)時間。假定火車均為24小時內(nèi)到達(dá),旅途時間為到達(dá)時間減出發(fā)時間。當(dāng)前20頁,總共36頁。1718192021222324252627282930313233Clock(intH=0,intM=0,intS=0){this->H=H,this->M=M,this->S=S;}

friendClockTripTime(Clock&StartTime,Clock&EndTime);};ClockTripTime(Clock&StartTime,Clock&EndTime){inttH,tM,tS;//臨時存儲小時、分、秒數(shù)

intcarry=0;//借位

ClocktTime;//臨時存儲時間

(tS=EndTime.S-StartTime.S)>0?carry=0:tS+=60,carry=1;(tM=EndTime.M-StartTime.M-carry)>0?carry=0:tM+=60,carry=1;(tH=EndTime.H-StartTime.H-carry)>0?carry=0:tH+=24;tTime.SetTime(tH,tM,tS);returntTime;}友元函數(shù)當(dāng)前21頁,總共36頁。3435363738394041intmain(){ ClockC1(8,10,10),C2(6,1,2);//定義Clock類的對象

ClockC3;//定義Clock類對象,存儲結(jié)果

C3=TripTime(C1,C2); C3.ShowTime();return0;}運(yùn)行結(jié)果:21:50:52

說明:在本例中,在Clock類體中設(shè)計了一個友元函數(shù)TripTime(),它不是類的成員函數(shù)。但是,可以看到友元函數(shù)中通過對象名StartTime和EndTime直接訪問了它們的的私有數(shù)據(jù)。成員StartTime.H、StartTime.M、StartTime.S,這就是友元的關(guān)鍵所在。使用友元成員的好處是兩個類可以某種方式相互合作、協(xié)同工作,共同完成某一任務(wù)。當(dāng)前22頁,總共36頁。6.2.3友元類

友元除可以是函數(shù)外,還可以是類,如果一個類聲明為另一個類的友元,則該類稱為另一個類的友元類。若A類為B類的友元類,則A類的所有成員函數(shù)都是B類的友元函數(shù),都可以訪問B類的任何數(shù)據(jù)成員。友元類的聲明是在類名之前加上關(guān)鍵字friend來實現(xiàn)。聲明A類為B類的友員類的格式如下:classB{

friendclassA;};注意:

在聲明A類為B類的友元類時,A類必須已經(jīng)存在,但是如果A類又將B類聲明為自己的友員類時,又會出現(xiàn)B類不存在的錯誤。當(dāng)前23頁,總共36頁。6.2.3友元類前向引用聲明:當(dāng)遇到兩個類相互引用的情況時,必然有一個類在定義之前就將被引用,怎么辦呢?對此,C++專門規(guī)定了前向引用聲明用以解決這類問題,前向引用聲明是在引用未定義的類之前對該類進(jìn)行聲明,它只是為程序引入一個代表該類的標(biāo)識符,類的具體定義可以在程序的其他地方進(jìn)行。12345678910//前向引用聲明示例classB;//前向引用聲明

classA{//A類的定義

public://外部接口

voidfunA(Bb);//以B類對象b為形參的成員函數(shù)

};

classB{//B類的定義

public://外部接口

voidfunB(Aa);//以A類對象a為形參的成員函數(shù)

};當(dāng)前24頁,總共36頁。12345678910111213/*************************************p7_11.cpp**計算火車旅途時間的友元類*************************************/#include<iostream>usingnamespacestd;classTrainTrip;//前向引用聲明classClock{private:intH,M,S;public:

voidShowTime(){cout<<H<<":"<<M<<":"<<S<<endl; }【例7-11】使用友元類計算某次火車的旅途時間。

分析:在p7_8.cpp中,定義了一個組合類TrainTrip,組合了Clock類對象表示某次火車出發(fā)時間、到達(dá)時間。但是,TrainTrip中的成員函數(shù)無法直接存取出發(fā)時間、到達(dá)時間中的訪問控制為private的H、M、S。如果將TrainTrip定義為Clock的友員類,則TrainTrip中的成員函數(shù)可以直接存取出發(fā)時間、到達(dá)時間中的數(shù)據(jù)成員。

當(dāng)前25頁,總共36頁。14151617181920212223242526272829303132333435

voidSetTime(intH=0,intM=0,intS=0){this->H=H,this->M=M,this->S=S;}

Clock(intH=0,intM=0,intS=0){this->H=H,this->M=M,this->S=S;}friendclassTrainTrip;};classTrainTrip{private:char*TrainNo;//車次

ClockStartTime;//出發(fā)時間

ClockEndTime;//到達(dá)時間public:

TrainTrip(char*TrainNo,ClockS,ClockE){ this->TrainNo=TrainNo;StartTime=S; EndTime=E;}當(dāng)前26頁,總共36頁。36373839404142434445464748495051525354555657

ClockTripTime(){ inttH,tM,tS;//臨時存儲小時、分、秒數(shù)

intcarry=0;//借位

ClocktTime;//臨時存儲時間

(tS=EndTime.S-StartTime.S)>0?carry=0:tS+=60,carry=1;(tM=EndTime.M-StartTime.M-carry)>0?carry=0:tM+=60,carry=1;(tH=EndTime.H-StartTime.H-carry)>0?carry=0:tH+=24; tTime.SetTime(tH,tM,tS);returntTime;}};intmain(){ClockC1(8,10,10),C2(6,1,2); //定義Clock類的對象

ClockC3;//定義Clock類對象,存儲結(jié)果

TrainTripT1("K16",C1,C2); //定義TrainTrip對象

C3=T1.TripTime(); C3.ShowTime();return0;}運(yùn)行結(jié)果:21:50:52當(dāng)前27頁,總共36頁。6.2.3友元類友元關(guān)系具有以下性質(zhì):

友元關(guān)系是不能傳遞的,B類是A類的友元,C類是B類的友元,C類和A類之間,如果沒有聲明,就沒有任何友元關(guān)系,不能進(jìn)行數(shù)據(jù)共享。友元關(guān)系是單向的,如果聲明B類是A類的友元,B類的成員函數(shù)就可以訪問A類的私有和保護(hù)數(shù)據(jù),但A類的成員函數(shù)卻不能訪問B類的私有和保護(hù)數(shù)據(jù)。友元概念的引入,提高了數(shù)據(jù)的共享性,加強(qiáng)了函數(shù)與函數(shù)之間,類與類之間的相互聯(lián)系,大大提高程序的效率,這是友元的優(yōu)點(diǎn),但友元也破壞了數(shù)據(jù)隱蔽和數(shù)據(jù)封裝,導(dǎo)致程序的可維護(hù)性變差,給程序的重用和擴(kuò)充埋下了深深的隱患,這是友元的缺點(diǎn)。對友元的使用必須慎重,要具體問題具體分析,在提高效率和增加共享之間把握好一個“度”,在共享和封裝之間進(jìn)行恰當(dāng)?shù)恼壑云胶狻?/p>

當(dāng)前28頁,總共36頁。6.3Const數(shù)據(jù)保護(hù)

由于常量是不可改變的,因此我們將“?!睆V泛用在C++中用來表示不可改變的量,如前面講的常變量。不僅變量可以定義為常變量,對象、類的成員也可以定義為“?!?。在程序中,我們有時候不允許修改某些特定的對象。如果某個對象不允許被修改,則該對象稱為常對象。C++用關(guān)鍵字const來定義常對象。

const也可以用來限定類的數(shù)據(jù)成員和成員函數(shù),分別稱為類的常數(shù)據(jù)成員和常函數(shù)成員。C++中常對象、常數(shù)據(jù)成員、常成員函數(shù)的訪問和調(diào)用各有其特別之處。常對象和常成員概念的建立,明確規(guī)定了程序中各種對象的變與不變的界線,從而進(jìn)一步增強(qiáng)了C++程序的安全性和可控性。當(dāng)前29頁,總共36頁。6.3Const數(shù)據(jù)保護(hù)

6.3.1

常引用在說明引用時用const修飾常引用所引用的對象不能被更新#include<iostream.h>voiddisplay(constdouble&);intmain(){doubled=9.5;display(d);return0;}voiddisplay(constdouble&r){r=10.5;×cout<<r<<endl;√}當(dāng)前30頁,總共36頁。6.3.2常對象

C++編譯器對常對象(const對象)的使用是極為苛刻的,它不允許常對象調(diào)用任何類的成員函數(shù),而且常對象一旦定義,在其生存期內(nèi)不允許改變,否則將導(dǎo)致編譯錯誤。常對象定義格式如下:

類型const對象名;

const類型對象名;1234567891011intmain(){

constClockC1(9,9,9);//定義常對象C1ClockconstC2(10,10,10);//定義常對象C2ClockC3(11,11,11);//C1=C3;//錯誤!C1為常對象,不能被賦值

//C1.ShowTime();//錯誤!C1為常對象,不能訪問非常成員函數(shù)

C3.ShowTime();//C1.SetTime(0,0,0);//錯誤!C1為常對象,不能被更新!

return0;}當(dāng)前31頁,總共36頁。6.3.3常數(shù)據(jù)成員

使用const說明的數(shù)據(jù)成員稱為常數(shù)據(jù)成員。常數(shù)據(jù)成員的定義與一般常變量的定義方式相同,只是它的定義必須出現(xiàn)在類體中。常數(shù)據(jù)成員同樣也必須進(jìn)行初始化,并且不能被更新。但常數(shù)據(jù)成員的初始化只能通過構(gòu)造函數(shù)的初始化列表進(jìn)行。常數(shù)據(jù)成員定義的格式如下:

數(shù)據(jù)類型

const數(shù)據(jù)成員名;或

const數(shù)據(jù)類型數(shù)據(jù)成員名;當(dāng)前32頁,總共36頁。1234567891011121314151617#include<i

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論