第五章 多文件結(jié)構(gòu)_第1頁(yè)
第五章 多文件結(jié)構(gòu)_第2頁(yè)
第五章 多文件結(jié)構(gòu)_第3頁(yè)
第五章 多文件結(jié)構(gòu)_第4頁(yè)
第五章 多文件結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩61頁(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)介

數(shù)據(jù)的共享與保護(hù)作用域與可見(jiàn)性對(duì)象的生存期數(shù)據(jù)與函數(shù)靜態(tài)成員共享數(shù)據(jù)的保護(hù)友元編譯預(yù)處理命令多文件結(jié)構(gòu)和工程5-1-1標(biāo)識(shí)符作用域1.函數(shù)原型作用域例如,以下函數(shù)原型編譯器認(rèn)為是相同的:

doublefunPrototype(double,double); doublefunPrototype(doublea,doubleb); doublefunPrototype(doublex,doubley);函數(shù)原型形式參數(shù)表中的標(biāo)識(shí)符具有函數(shù)原型作用域

作用域指標(biāo)識(shí)符能夠被使用的范圍。只有在作用域內(nèi)標(biāo)識(shí)符才可以被訪問(wèn)(稱為可見(jiàn))。函數(shù)原型中的參數(shù),其作用域始于

"(",結(jié)束于")"。例如,設(shè)有下列原型聲明:doubleArea(doubleradius);radius的作用域僅在于此,不能用于程序正文其他地方,因而可有可無(wú)。2.塊作用域在語(yǔ)句塊中聲明的標(biāo)識(shí)符具有塊作用域//例

不同作用域的同名變量#include<iostream>usingnamespacestd;intmain(){inta=1; //外層的a{inta=1; //內(nèi)層的aa++;cout<<"insidea="<<a<<endl;} //內(nèi)層的a作用域結(jié)束cout<<"outsidea="<<

a

<<endl;} //外層的a作用域結(jié)束2.塊作用域在語(yǔ)句塊中聲明的標(biāo)識(shí)符具有塊作用域//例3-25不同作用域的同名變量#include<iostream>usingnamespacestd;intmain(){int

a

=1; //外層的a{int

a

=1;

//內(nèi)層的a

a

++;cout<<"insidea="<<

a

<<endl;} //內(nèi)層的a作用域結(jié)束cout<<"outsidea="<<

a

<<endl;} //外層的a作用域結(jié)束insidea=2outsidea=1內(nèi)層的a覆蓋了外層的a3.函數(shù)作用域語(yǔ)句標(biāo)號(hào)(后面帶冒號(hào)的標(biāo)識(shí)符)是惟一具有函數(shù)作用域的標(biāo)識(shí)符語(yǔ)句標(biāo)號(hào)用于switch結(jié)構(gòu)中的case標(biāo)號(hào),goto語(yǔ)句轉(zhuǎn)向入口的語(yǔ)句標(biāo)號(hào)標(biāo)號(hào)可以在函數(shù)體中任何地方使用,但不能在函數(shù)體外引用類作用域作用于特定的成員名。類X的成員M具有類作用域,對(duì)M的訪問(wèn)方式如下:如果在X的成員函數(shù)中沒(méi)有聲明同名的局部作用域標(biāo)識(shí)符,那么在該函數(shù)內(nèi)可以訪問(wèn)成員M。通過(guò)表達(dá)式x.M或者X::M訪問(wèn)。通過(guò)表達(dá)式prt->M4.類作用域5.文件作用域任何在函數(shù)之外聲明的標(biāo)識(shí)符具有文件作用域這種標(biāo)識(shí)符從聲明處起至文件尾的任何函數(shù)都可見(jiàn)//例

使用文件作用域變量#include<iostream>usingnamespacestd;inta=1,b=1;voidf1(intx){a=x*x;b=a*x;}intc;voidf2(intx,inty){a=x>y?x:y;b=x<y?x:y;c=x+y;}intmain(){f1(4); cout<<"callfunctionf1:\n";cout<<"a="<<a<<",b="<<b<<endl;f2(10,23);cout<<"callfunctionf2:\n";cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;}//例

使用文件作用域變量#include<iostream>usingnamespacestd;inta

=1,

b

=1;

voidf1(intx) {a=x*x;

b=a*x;}intc; voidf2(intx,inty) {a=x>y?x:y;b=x<y?x:y;

c=x+y;}intmain(){f1(4); cout<<"callfunctionf1:\n";cout<<"a="<<a<<",b="<<b<<endl;f2(10,23);cout<<"callfunctionf2:\n";cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;}//

a,b的作用域從這里開(kāi)始//f1函數(shù)可以訪問(wèn)a,b//f2函數(shù)可以訪問(wèn)a,b//main函數(shù)可以訪問(wèn)a,b//例

使用文件作用域變量#include<iostream>usingnamespacestd;inta

=1,

b

=1;

voidf1(intx) {a=x*x;

b=a*x;}intc; voidf2(intx,inty) {a=x>y?x:y;b=x<y?x:y;

c=x+y;}intmain(){f1(4); cout<<"callfunctionf1:\n";cout<<"a="<<a<<",b="<<b<<endl;f2(10,23);cout<<"callfunctionf2:\n";cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;}//

a,b的作用域從這里開(kāi)始//f1函數(shù)可以訪問(wèn)a,b//f2函數(shù)可以訪問(wèn)a,b//main函數(shù)可以訪問(wèn)a,b//

c

的作用域從這里開(kāi)始,默認(rèn)初始值為0//f2函數(shù)可以訪問(wèn)a,b,c//main函數(shù)可以訪問(wèn)a,b,c6.全局變量和局部變量具有文件作用域的變量稱為全局變量;具有函數(shù)作用域或塊作用域的變量稱為局部變量全局變量聲明時(shí)默認(rèn)初始值為0

當(dāng)局部量與全局量同名,在塊內(nèi)屏蔽全局量為了在塊內(nèi)訪問(wèn)全局量,可以用域運(yùn)算符"::"6.全局變量和局部變量//在函數(shù)體內(nèi)訪問(wèn)全局變量#include<iostream>usingnamespacestd;intx;intmain(){intx=256;cout<<"globalvariablex="<<::x<<endl;cout<<"localvariablex="<<x<<endl;}6.全局變量和局部變量//在函數(shù)體內(nèi)訪問(wèn)全局變量#include<iostream>usingnamespacestd;intx

;intmain(){intx=256;cout<<"globalvariablex="<<::x<<endl;cout<<"localvariablex="<<x<<endl;}訪問(wèn)全局量6.全局變量和局部變量//在函數(shù)體內(nèi)訪問(wèn)全局變量#include<iostream>usingnamespacestd;intx;intmain(){intx=256;cout<<"globalvariablex="<<::x<<endl;cout<<"localvariablex="<<x<<endl;}訪問(wèn)局部量6.全局變量和局部變量//在函數(shù)體內(nèi)訪問(wèn)全局變量#include<iostream>usingnamespacestd;intx;intmain(){intx=256;cout<<"globalvariablex="<<::x<<endl;cout<<"localvariablex="<<x<<endl;}7命名空間

命名空間是類、函數(shù)、對(duì)象、類型和其他名字的集合。命名空間令軟件組件之間不會(huì)產(chǎn)生命名沖突。

std是C++的標(biāo)準(zhǔn)名空間,包含了標(biāo)準(zhǔn)頭文件中各種名字的聲明。標(biāo)準(zhǔn)名空間

C++標(biāo)準(zhǔn)頭文件沒(méi)有擴(kuò)展名。

iostreamiomaniplimitfstreamstringtypeinfostdexcept

使用標(biāo)準(zhǔn)類庫(kù)的組件時(shí),需要指定名空間。

C++標(biāo)準(zhǔn)名空間std//方法一:#include<iostream> usingnamespacestd; intmain(){inta,b;cin>>a; cin>>b; cout<<"a+b="<<a+b<<'\n'; }使用標(biāo)準(zhǔn)名空間//方法一:#include<iostream> usingnamespacestd; intmain(){inta,b;cin>>a; cin>>b; cout<<"a+b="<<a+b<<'\n'; }使用標(biāo)準(zhǔn)名空間//包含頭文件//方法一:#include<iostream>

usingnamespacestd;

intmain(){inta,b;cin>>a; cin>>b; cout<<"a+b="<<a+b<<'\n'; }使用標(biāo)準(zhǔn)名空間//包含頭文件//使用標(biāo)準(zhǔn)名空間std//方法一:#include<iostream>

usingnamespacestd; intmain(){inta,b;cin>>a;

cin>>b; cout<<"a+b="<<a+b<<'\n'; }使用標(biāo)準(zhǔn)名空間//包含頭文件//使用標(biāo)準(zhǔn)名空間std//使用std的元素cin//方法一:#include<iostream>

usingnamespacestd; intmain(){inta,b;cin>>a;

cin>>b;

cout<<"a+b="<<a+b<<'\n'; }使用標(biāo)準(zhǔn)名空間//包含頭文件//使用標(biāo)準(zhǔn)名空間std//使用std的元素cin//使用std的元素cout//方法一:#include<iostream> usingnamespacestd; intmain(){inta,b;cin>>a; cin>>b; cout<<"a+b="<<a+b<<'\n'; }使用標(biāo)準(zhǔn)名空間//包含頭文件//指定使用名空間std//使用std的元素cin//使用std的元素cin//使用std的元素cout//方法二:#include<iostream>usingstd::cin;usingstd::cout;intmain(){inta,b;cin>>a; cin>>b; cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//方法二:#include<iostream>usingstd::cin;usingstd::cout;intmain(){inta,b;cin>>a; cin>>b; cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//指定使用std的元素cin//方法二:#include<iostream>usingstd::cin;

usingstd::cout;intmain(){inta,b;cin>>a; cin>>b; cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//指定使用std的元素cin//指定使用std的元素cout//方法二:#include<iostream>usingstd::cin;

usingstd::cout;intmain(){inta,b;

cin>>a;

cin>>b; cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//指定使用std的元素cin//指定使用std的元素cout//使用std的元素cin//方法二:#include<iostream>usingstd::cin;

usingstd::cout;intmain(){inta,b;cin>>a; cin>>b;

cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//指定使用std的元素cin//指定使用std的元素cout//使用std的元素cin//使用std的元素cout//方法二:#include<iostream>usingstd::cin;usingstd::cout;intmain(){inta,b;cin>>a; cin>>b; cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//指定使用std的元素cin//指定使用std的元素cout//使用std的元素cin//使用std的元素cout//方法三:#include<iostream>intmain(){inta,b;std::cin>>a;std::cin>>b;std::cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//方法三:#include<iostream>intmain(){inta,b;std::cin>>a;std::cin>>b;

std::cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//指定使用std的元素cin//方法三:#include<iostream>intmain(){inta,b;

std::cin>>a;std::cin>>b;std::cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//指定使用std的元素cin//指定使用std的元素cout//方法三:#include<iostream>intmain(){inta,b;std::cin>>a;std::cin>>b;std::cout<<"a+b="<<a+b<<'\n';}使用標(biāo)準(zhǔn)名空間//指定使用std的元素cin//指定使用std的元素cout定義名空間

定義命名空間語(yǔ)法:namespace<標(biāo)識(shí)符>{<語(yǔ)句序列>}namespaceA{voidf();voidg();}namespaceB{voidh();namespaceC //嵌套命名空間

{voidi();}}namespaceA //為namespaceA追加說(shuō)明

{voidj();}定義名空間定義命名空間語(yǔ)法:

usingnamespace

名空間;或

using

名空間::元素;//例

演示命名空間的使用#include<iostream>usingnamespacestd;namespaceA{voidf(){cout<<"f():fromnamespaceA\n";}voidg(){cout<<"g():fromnamespaceA\n";}namespaceB{voidf(){cout<<"f():fromnamespaceB\n";}namespaceC{voidf(){cout<<"f():fromnamespaceC\n";}}}}voidg(){cout<<"g():fromglobalnamespace“<<endl;}intmain(){g();usingnamespaceA;f();B::f();B::C::f();A::g();}調(diào)用非命名空間函數(shù)g()使用命名空間A調(diào)用命名空間函數(shù)A::g()調(diào)用函數(shù)A::B::f()調(diào)用函數(shù)A::B::C::f()調(diào)用函數(shù)A::g()可見(jiàn)性

可見(jiàn)性從另一個(gè)角度說(shuō)明標(biāo)識(shí)符的有效性,可見(jiàn)性與作用域具有一定的一致性。標(biāo)識(shí)符的作用域包含可見(jiàn)范圍,可見(jiàn)范圍不會(huì)超過(guò)作用域。可見(jiàn)性在理解同名標(biāo)識(shí)符的作用域嵌套時(shí)十分直觀。對(duì)于外層塊與內(nèi)層塊定義了同名標(biāo)識(shí)符的,在外層作用域中,內(nèi)層所定義的標(biāo)識(shí)符是不可見(jiàn)的,即外層引用的是外層所定義的標(biāo)識(shí)符;同樣,在內(nèi)層作用域中,外層的標(biāo)識(shí)符將被內(nèi)層的同名標(biāo)識(shí)符屏蔽,變得不可見(jiàn),即外層中同名標(biāo)識(shí)符的可見(jiàn)范圍為作用域中挖去內(nèi)層塊的范圍。可見(jiàn)性

下面的程序段和圖示顯示作用域與可見(jiàn)性。

intm=1;floatx;{floatm=3.5;X=5.5;}m++;

intm,floatx作用域intm可見(jiàn)floatm不可見(jiàn)x可見(jiàn)floatm作用域floatm可見(jiàn)intm不可見(jiàn)x可見(jiàn)

5-2

生命期

(1)靜態(tài)生命期

(2)局部生命期

(3)動(dòng)態(tài)生命期

生命期(Lifetime)也叫生存期。生命期與存儲(chǔ)區(qū)域相關(guān),存儲(chǔ)區(qū)域分為代碼區(qū)、靜態(tài)數(shù)據(jù)區(qū)、棧區(qū)和堆區(qū),相應(yīng)地,生命期分為靜態(tài)生命期、局部生命期和動(dòng)態(tài)生命期。(1)靜態(tài)生命期

靜態(tài)生命期指的是標(biāo)識(shí)符從程序開(kāi)始運(yùn)行時(shí)存在,即具有存儲(chǔ)空間,到程序運(yùn)行結(jié)束時(shí)消亡,即釋放存儲(chǔ)空間。具有靜態(tài)生命期的標(biāo)識(shí)符存放在靜態(tài)數(shù)據(jù)區(qū),屬于靜態(tài)存儲(chǔ)類型,如全局變量、靜態(tài)全局變量、靜態(tài)局部變量。具有靜態(tài)生命期的標(biāo)識(shí)符在未被用戶初始化的情況下,系統(tǒng)會(huì)自動(dòng)將其初始化為全0。

函數(shù)駐留在代碼區(qū),也具有靜態(tài)生命期。所有具有文件作用域的標(biāo)識(shí)符都具有靜態(tài)生命期。(2)局部生命期

在函數(shù)內(nèi)部或塊中定義的標(biāo)識(shí)符具有局部生命期,其生命期開(kāi)始于執(zhí)行到該函數(shù)或塊的標(biāo)識(shí)符聲明處,結(jié)束于該函數(shù)或塊的結(jié)束處。具有靜態(tài)生命期的標(biāo)識(shí)符存放在棧區(qū)。具有局部生命期的標(biāo)識(shí)符如果未被初始化,其內(nèi)容是隨機(jī)的,不可用。具有局部生命期的標(biāo)識(shí)符必定具有局部作用域;但反之不然,靜態(tài)局部變量具有局部作用域,但卻具有靜態(tài)生命期。(3)動(dòng)態(tài)生命期

具有動(dòng)態(tài)生命期的標(biāo)識(shí)符由特定的函數(shù)調(diào)用或運(yùn)算來(lái)創(chuàng)建和釋放,如調(diào)用malloc()或用new運(yùn)算符為變量分配存儲(chǔ)空間時(shí),變量的生命期開(kāi)始,而調(diào)用free()或用delete運(yùn)算符釋放空間或程序結(jié)束時(shí),變量生命期結(jié)束。具有動(dòng)態(tài)生命期的變量存放在堆區(qū)。關(guān)于new運(yùn)算和delete運(yùn)算將在指針一章中介紹。#include<iostream.h>voidfun();intmain(){fun();fun();}voidfun(){staticinta=1;inti=5;

a++;

i++;cout<<"i="<<i<<",a="<<a<<endl;}運(yùn)行結(jié)果:i=6,a=2i=6,a=3i是動(dòng)態(tài)生存期a是靜態(tài)生存期例5-2變量的生存期與可見(jiàn)性#include<iostream.h>inti=1;//i為全局變量,具有靜態(tài)生存期。intmain(){staticinta;//靜態(tài)局部變量,有全局壽命,局部可見(jiàn)。

intb=-10;//b,c為局部變量,具有動(dòng)態(tài)生存期。

intc=0;voidother(void);cout<<"---MAIN---\n";cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;c=c+8;other();cout<<"---MAIN---\n";cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;

i=i+10;other();}voidother(void){staticinta=2;staticintb;//a,b為靜態(tài)局部變量,具有全局壽命,局部可見(jiàn)。

//只第一次進(jìn)入函數(shù)時(shí)被初始化。

intc=10;//C為局部變量,具有動(dòng)態(tài)生存期,

//每次進(jìn)入函數(shù)時(shí)都初始化。

a=a+2;i=i+32;c=c+5;cout<<"---OTHER---\n";cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;b=a;}17運(yùn)行結(jié)果:---MAIN---i:1a:0b:-10c:0---OTHER---i:33a:4b:0c:15---MAIN---i:33a:0b:-10c:8---OTHER---i:75a:6b:4c:1518例5-3具有靜態(tài)、動(dòng)態(tài)生存期對(duì)象的時(shí)鐘程序#include<iostream.h>classClock //時(shí)鐘類聲明{public: //外部接口

Clock(); voidSetTime(intNewH,intNewM,intNewS);//三個(gè)形參均具有函數(shù)原型作用域

voidShowTime(); ~Clock(){}private: //私有數(shù)據(jù)成員

intHour,Minute,Second;};//時(shí)鐘類成員函數(shù)實(shí)現(xiàn)Clock::Clock()//構(gòu)造函數(shù){ Hour=0; Minute=0; Second=0;}voidClock::SetTime(intNewH,intNewM,intNewS){ Hour=NewH; Minute=NewM; Second=NewS;}voidClock::ShowTime(){ cout<<Hour<<":"<<Minute<<":"<<Second<<endl;}20ClockglobClock;//聲明對(duì)象globClock,

//具有靜態(tài)生存期,文件作用域intmain() //主函數(shù){ cout<<"Firsttimeoutput:"<<endl; //引用具有文件作用域的對(duì)象:

globClock.ShowTime();//對(duì)象的成員函數(shù)具有類作用域

globClock.SetTime(8,30,30); ClockmyClock(globClock);//聲明具有塊作用域的對(duì)象myClock cout<<"Secondtimeoutput:"<<endl; myClock.ShowTime(); //引用具有塊作用域的對(duì)象}21程序的運(yùn)行結(jié)果為:Firsttimeoutput:0:0:0Secondtimeoutput:8:30:3022多文件程序結(jié)構(gòu)

一個(gè)C++程序稱為一個(gè)工程(.dsp)一個(gè)工程由一個(gè)或多個(gè)文件組成一個(gè)文件可以包含多個(gè)函數(shù)定義,但一個(gè)函數(shù)的定義必須完整地存在于一個(gè)文件中一個(gè)文件可以被多個(gè)應(yīng)用程序共享多文件結(jié)構(gòu)

一個(gè)好的軟件系統(tǒng)應(yīng)當(dāng)分解為各種同構(gòu)邏輯文件頭文件A頭文件B頭文件C實(shí)現(xiàn)文件A.cpp實(shí)現(xiàn)文件B.cpp實(shí)現(xiàn)文件C.cpp 主文件M.cpp 例

計(jì)算圓面積和矩形面積myAreamyCircle.cppmyRect.cpp

myMain.cpp 例計(jì)算圓面積和矩形面積constdoublepi=3.14;doublecircle(doubleradius){returnpi*radius*radius;}myCircle.cppdoublerect(doublewith,doublelength){returnwith*length;}myRect.cppdoublecircle(doubleradius);doublerect(doublewidth,doublelength);myArea例3-27計(jì)算圓面積和矩形面積#include<iostream>usingnamespacestd;#include"myArea"intmain(){doublewidth,length;cout<<"Pleaseentertwonumbers:\n";cin>>width>>length;cout<<"Areaofrecttangleis:"<<rect(width,length)<<endl;doubleradius;cout<<"Pleaseenteraradius:\n";cin>>radius;cout<<"Areaofcircleis:"<<circle(radius)<<endl;}

myMain.cpp預(yù)處理指令源程序預(yù)處理器詞法分析語(yǔ)法分析代碼生成錯(cuò)誤處理程序目標(biāo)程序符號(hào)表錯(cuò)誤信息C++編譯器工作過(guò)程預(yù)處理器

改善程序的組織和管理預(yù)處理指令

所有編譯指令以#

開(kāi)頭,每條指令單獨(dú)占一行預(yù)處理指令1.文件包含include指令在編譯之前把指定文件包含到該命令所在位置

#

include

<文件名>或 #

include

"文件名"

形式為:系統(tǒng)頭文件預(yù)處理指令1.文件包含include指令在編譯之前把指定文件包含到該命令所在位置

#

include

<文件名>或 #

include

"文件名"

形式為:自定義頭文件預(yù)處理指令2.條件編譯形式1#if

常量表達(dá)式程序段#endif形式2#if

常量表達(dá)式程序段1#else程序段2#endif形式3#if

常量表達(dá)式1程序段1

#elif

常量表達(dá)式2程序段2…#elif

常量表達(dá)式n

溫馨提示

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