西安石油大學(xué)大二(上)C++面向?qū)ο蟪绦蛟O(shè)計課件chapter4_第1頁
西安石油大學(xué)大二(上)C++面向?qū)ο蟪绦蛟O(shè)計課件chapter4_第2頁
西安石油大學(xué)大二(上)C++面向?qū)ο蟪绦蛟O(shè)計課件chapter4_第3頁
西安石油大學(xué)大二(上)C++面向?qū)ο蟪绦蛟O(shè)計課件chapter4_第4頁
西安石油大學(xué)大二(上)C++面向?qū)ο蟪绦蛟O(shè)計課件chapter4_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第第4 4章章 友元和運算符重載友元和運算符重載2主要內(nèi)容主要內(nèi)容友元的概念友元的概念定義友元的方法定義友元的方法運算符重載運算符重載34.1 4.1 友元的概念友元的概念問題引入問題引入類具有封裝性,類具有封裝性,privateprivate成員只能在類定義的范成員只能在類定義的范圍內(nèi),由該類對象的成員函數(shù)來訪問。即外部程圍內(nèi),由該類對象的成員函數(shù)來訪問。即外部程序不能存取類的私有成員。但有時候,為了提高序不能存取類的私有成員。但有時候,為了提高效率,需要在類的外部訪問類的效率,需要在類的外部訪問類的privateprivate成員。成員。C+C+解決方法解決方法通過友元實現(xiàn)類外部的函數(shù)或

2、類訪問類中的通過友元實現(xiàn)類外部的函數(shù)或類訪問類中的 privateprivate成員。成員。44.1 4.1 友元的概念友元的概念友元的概念友元的概念 所謂所謂友元友元是說一個類或一個函數(shù)是另一個類的是說一個類或一個函數(shù)是另一個類的朋友(朋友(friendfriend)元素。)元素。 當(dāng)一個類或一個函數(shù)是另一個類的友元時,可當(dāng)一個類或一個函數(shù)是另一個類的友元時,可用用“.”.”或或“-”-”運算符來調(diào)用該類中的運算符來調(diào)用該類中的私有私有成員成員。 友元種類友元種類 友元類友元類 友元成員函數(shù)友元成員函數(shù) 友元函數(shù)(不屬于任何類)友元函數(shù)(不屬于任何類)54.1 4.1 友元的概念友元的概念友

3、元的概念友元的概念當(dāng)一個類當(dāng)一個類A A是另一個類是另一個類B B的友元時,稱類的友元時,稱類A A是類是類B B的的友元類友元類,類,類B B是類是類A A的的宿主類。宿主類。當(dāng)一個函數(shù)是另一個類當(dāng)一個函數(shù)是另一個類A A的友元時,稱該函數(shù)的友元時,稱該函數(shù)是類是類A A的的友元函數(shù)。友元函數(shù)。64.2 4.2 定義友元的方法定義友元的方法定義友元類的方法定義友元類的方法 C+C+語言中,定義類語言中,定義類A A是類是類B B的友元類的語句格的友元類的語句格式是:將聲明語句式是:將聲明語句friend class A;friend class A;加入類加入類B B的的定義中。定義中。如:

4、如:class Bclass B friend class A;friend class A; / /類類B B的常規(guī)定義的常規(guī)定義;74.2 4.2 定義友元的方法定義友元的方法定義友元類的方法定義友元類的方法友元類的聲明語句可放在公有部分也可放在私友元類的聲明語句可放在公有部分也可放在私有部分。有部分。 一旦定義了類一旦定義了類A A是類是類B B的友元類,則類的友元類,則類A A中的所中的所有成員函數(shù)都是類有成員函數(shù)都是類A A的友元成員函數(shù),即類的友元成員函數(shù),即類A A的的所有成員函數(shù)都可用所有成員函數(shù)都可用“.”.”或或“-”-”運算符來運算符來調(diào)用類調(diào)用類B B中的中的priva

5、teprivate成員或成員或protectedprotected成員。成員。舉例舉例84.2 4.2 定義友元的方法定義友元的方法1.1. 定義友元類的方法定義友元類的方法例例1 1 設(shè)計一個類作為另一個類的友元類,說明友設(shè)計一個類作為另一個類的友元類,說明友元類的使用方法。元類的使用方法。class B friend class A; private: int topSecret;public: B(int t = 0) : topSecret(t) int GetTopSecret(void) return topSecret; ;94.2 4.2 定義友元的方法定義友元的方法1.1.

6、定義友元類的方法定義友元類的方法class A int x;public: A(void) void change(B &b) const /x+; b. topSecret+; ; void main() B b; A a; a.change(b); cout”-”運運算符訪問該類的所有對象成員。算符訪問該類的所有對象成員。 友元函數(shù)的聲明友元函數(shù)的聲明friend friend 函數(shù)原型函數(shù)原型 此聲明可放在公有部分,也可放在私有部分。此聲明可放在公有部分,也可放在私有部分。124.2 4.2 定義友元的方法定義友元的方法v定義友元函數(shù)的方法定義友元函數(shù)的方法友元函數(shù)定義友元函數(shù)定義 可在

7、類的內(nèi)部,也可在類的外部定義友元函數(shù)??稍陬惖膬?nèi)部,也可在類的外部定義友元函數(shù)。 在類的外部定義友元函數(shù)時,不必在函數(shù)名前在類的外部定義友元函數(shù)時,不必在函數(shù)名前加上加上“類名類名:”:”。友元函數(shù)同一般成員函數(shù)的區(qū)別是,友元函數(shù)沒友元函數(shù)同一般成員函數(shù)的區(qū)別是,友元函數(shù)沒有有thisthis指針。指針。134.2 4.2 定義友元的方法定義友元的方法v 定義友元函數(shù)的方法定義友元函數(shù)的方法v 友元函數(shù)一般帶有一個該類的入口參數(shù)。友元函數(shù)一般帶有一個該類的入口參數(shù)。因為友元函數(shù)不是類的成員函數(shù),不能直接因為友元函數(shù)不是類的成員函數(shù),不能直接引用對象成員的名字,必須通過作為入引用對象成員的名字,

8、必須通過作為入口參數(shù)傳遞進來的對象名或指針來引用口參數(shù)傳遞進來的對象名或指針來引用該對象的成員。該對象的成員。144.2 4.2 定義友元的方法定義友元的方法定義友元成員函數(shù)的方法定義友元成員函數(shù)的方法 當(dāng)一個類當(dāng)一個類A A定義為類定義為類B B的友元類時,類的友元類時,類A A中的所中的所有成員函數(shù)都是類有成員函數(shù)都是類B B的友元成員函數(shù)。的友元成員函數(shù)。 當(dāng)只需要類當(dāng)只需要類A A中的若干成員函數(shù)為類中的若干成員函數(shù)為類B B的友元時,的友元時,可以只定義類可以只定義類A A中的這些成員函數(shù)為類中的這些成員函數(shù)為類B B的的友元友元成員函數(shù)成員函數(shù)。154.2 4.2 定義友元的方法定

9、義友元的方法定義友元成員函數(shù)的方法定義友元成員函數(shù)的方法友元成員函數(shù)的聲明:友元成員函數(shù)的聲明:class Aclass A 返回類型返回類型 func(func(參數(shù)參數(shù));); ;class Bclass B friend friend 返回類型返回類型 類類A: func(A: func(參數(shù)參數(shù)););164.2 4.2 定義友元的方法定義友元的方法定義友元成員函數(shù)的方法定義友元成員函數(shù)的方法 說明說明 當(dāng)類當(dāng)類A A的成員函數(shù)作為類的成員函數(shù)作為類B B的友元成員函數(shù)時,的友元成員函數(shù)時,必須先定義類必須先定義類A (A (符合符合C+C+語言先定義、后使用語言先定義、后使用的基本原

10、則。的基本原則。) ),不同于友元類。,不同于友元類。 聲明友元成員函數(shù)時,要加上成員函數(shù)所在的聲明友元成員函數(shù)時,要加上成員函數(shù)所在的類的類名。類的類名。 類類A A中的這些成員函數(shù)不僅可以訪問所在類中的這些成員函數(shù)不僅可以訪問所在類中的中的privateprivate成員和成員和publicpublic成員,還可以訪成員,還可以訪問類問類B B中的中的privateprivate成員和成員和publicpublic成員。成員。174.3 4.3 運算符重載運算符重載運算符重載的概念運算符重載的概念 運算符重載通過創(chuàng)建運算符函數(shù)來實現(xiàn)。運算符重載通過創(chuàng)建運算符函數(shù)來實現(xiàn)。 運算符函數(shù)定義了重

11、載的運算符所要進行的操運算符函數(shù)定義了重載的運算符所要進行的操作,這種操作通常作用在一個類上。作,這種操作通常作用在一個類上。 運算符函數(shù)的兩種形式運算符函數(shù)的兩種形式類的成員函數(shù)類的成員函數(shù)友元函數(shù)友元函數(shù) 運算符函數(shù)名運算符函數(shù)名operator /等同于函數(shù)名等同于函數(shù)名為所要重載的運算符為所要重載的運算符如:如:operator+。184.3 4.3 運算符重載運算符重載v 運算符重載和函數(shù)重載的區(qū)別運算符重載和函數(shù)重載的區(qū)別 對于運算符重載,重載的是運算符。對于運算符重載,重載的是運算符。 即使運算符只在當(dāng)前程序中定義了一次,即使運算符只在當(dāng)前程序中定義了一次,也稱做運算符重載。也稱

12、做運算符重載。為什么?為什么? 運算符重載必須滿足運算符重載必須滿足C+C+語言規(guī)定。語言規(guī)定。194.3 4.3 運算符重載運算符重載運算符重載的規(guī)定運算符重載的規(guī)定 重載的運算符要保持原運算符的意義。重載的運算符要保持原運算符的意義。 不能創(chuàng)建新的運算符,只能對已有運算符重載。允許不能創(chuàng)建新的運算符,只能對已有運算符重載。允許重載的運算符如重載的運算符如表表4.14.1所示。所示。 不能重載的運算符:不能重載的運算符:?: . - : sizeof?: . - : sizeof 重載不能改變運算符的優(yōu)先級。但在表達式中使用圓重載不能改變運算符的優(yōu)先級。但在表達式中使用圓括號可強制改變重載運

13、算符的計算順序。括號可強制改變重載運算符的計算順序。 重載不能改變運算符的結(jié)合性。重載不能改變運算符的結(jié)合性。 重載不能改變運算符操作數(shù)的個數(shù)。重載不能改變運算符操作數(shù)的個數(shù)。204.3 4.3 運算符重載運算符重載運算符重載為類的成員函數(shù)運算符重載為類的成員函數(shù) 成員運算符函數(shù)的聲明成員運算符函數(shù)的聲明class X type operator(參數(shù)表參數(shù)表) ; /;其中:其中:type為函數(shù)的返回類型,為函數(shù)的返回類型, 為所要重載的運算符符號。為所要重載的運算符符號。214.3 4.3 運算符重載運算符重載運算符重載為類的成員函數(shù)運算符重載為類的成員函數(shù)成員運算符函數(shù)的定義成員運算符函

14、數(shù)的定義type X:operator (參數(shù)表參數(shù)表) /函數(shù)體函數(shù)體說明:說明:運算符重載函數(shù)運算符重載函數(shù)operator ()operator ()可以返回任何類可以返回任何類型,甚至為型,甚至為voidvoid類型,但通常返回類型與它所類型,但通常返回類型與它所操作的類的類型相同,這樣可使重載運算符用操作的類的類型相同,這樣可使重載運算符用在復(fù)雜的表達式中。在復(fù)雜的表達式中。224.3 4.3 運算符重載運算符重載 運算符重載為類的成員函數(shù)運算符重載為類的成員函數(shù)雙目運算符重載為類的成員函數(shù)雙目運算符重載為類的成員函數(shù) 運算符函數(shù)僅有一個參數(shù),作為運算符的右操運算符函數(shù)僅有一個參數(shù),

15、作為運算符的右操作數(shù)。作數(shù)。 當(dāng)前對象作為運算符的左操作數(shù),它是通過當(dāng)前對象作為運算符的左操作數(shù),它是通過 thisthis指針隱含地傳遞給函數(shù)。指針隱含地傳遞給函數(shù)。例如:雙目運算符例如:雙目運算符“+ +”,表達式:表達式: objectX + objectYobjectX + objectY系統(tǒng)內(nèi)部系統(tǒng)內(nèi)部的表示形式為:的表示形式為: objectX.operator+(objectY);objectX.operator+(objectY);234.3 4.3 運算符重載運算符重載運算符重載為類的成員函數(shù)運算符重載為類的成員函數(shù)雙目運算符重載為類的成員函數(shù)雙目運算符重載為類的成員函數(shù)例例

16、4.2 4.2 重載復(fù)數(shù)的重載復(fù)數(shù)的“+”+”運算符和運算符和“+=”+=”運算符為復(fù)數(shù)類的成員函數(shù)形式運算符為復(fù)數(shù)類的成員函數(shù)形式class Complex double real; double image;public: Complex(double r = 0.0, double i = 0.0) :real(r), image(i) Complex operator+(Complex &c); Complex& operator+=(Complex &c); /;244.3 4.3 運算符重載運算符重載Complex Complex:operator+(Complex &c) ret

17、urn Complex ( real + c.real, image + c.image); /real相當(dāng)于相當(dāng)于this-real, image相當(dāng)于相當(dāng)于this-image254.3 4.3 運算符重載運算符重載1.1. 地地Complex& Complex:operator+=(Complex &c) real += c.real; image += c.image; return *this; /返回當(dāng)前對象返回當(dāng)前對象主函數(shù)中:主函數(shù)中: Complex a(2.3, 4.6), b(3.6, 2.8), c; c = a + b; /等同于等同于c = a.operator +

18、 (b); c+=a; /等同于等同于c = c.operator + (a);264.3 4.3 運算符重載運算符重載 運算符重載為類的成員函數(shù)運算符重載為類的成員函數(shù) 單目運算符重載為類的成員函數(shù)單目運算符重載為類的成員函數(shù)運算符函數(shù)參數(shù)表為空。運算符函數(shù)參數(shù)表為空。當(dāng)前對象作為運算符的一個操作數(shù)。當(dāng)前對象作為運算符的一個操作數(shù)。采用成員函數(shù)重載單目運算符采用成員函數(shù)重載單目運算符 后,調(diào)用方式:后,調(diào)用方式: objectX; /用戶用戶表達式表達式 objectX.operator (); /系統(tǒng)內(nèi)部表示系統(tǒng)內(nèi)部表示 成員運算符函數(shù)成員運算符函數(shù)operator operator 所需

19、的一個操作所需的一個操作數(shù)由對象數(shù)由對象objectXobjectX通過通過thisthis指針隱含地傳遞。指針隱含地傳遞。274.3 4.3 運算符重載運算符重載 運算符重載為類的成員函數(shù)運算符重載為類的成員函數(shù)單目運算符重載為類的成員函數(shù)單目運算符重載為類的成員函數(shù)例如:重載單目運算符例如:重載單目運算符“+”class coord int x, y;public: coord(int i = 0, int j = 0):x(i), y(j) coord & operator+(); void print() cout“x:”x “, y:” yendl; ;284.3 4.3 運算符重載

20、運算符重載說明:說明:對于前綴方式對于前綴方式 括號中為空,即括號中為空,即coord operator+();coord operator+();對于后綴方式括號中填寫對于后綴方式括號中填寫“intint”,即,即coord operator+(int);coord operator+(int);調(diào)用時參數(shù)調(diào)用時參數(shù)intint一般被傳遞給值一般被傳遞給值0 0。coord & coord:operator+() +x; +y; return *this;294.3 4.3 運算符重載運算符重載運算符重載為類的友元函數(shù)運算符重載為類的友元函數(shù) 在在C+C+中,還可以把運算符函數(shù)定義成某個類中

21、,還可以把運算符函數(shù)定義成某個類的友元函數(shù),稱為友元運算符函數(shù)。的友元函數(shù),稱為友元運算符函數(shù)。 友員運算符函數(shù)的聲明友員運算符函數(shù)的聲明friend type operator (參數(shù)表參數(shù)表)其中:其中:type為函數(shù)的返回類型,為函數(shù)的返回類型, 為所要重載的運算符符號。為所要重載的運算符符號。304.3 4.3 運算符重載運算符重載運算符重載為類的友元函數(shù)運算符重載為類的友元函數(shù)友元運算符函數(shù)的定義友元運算符函數(shù)的定義type operator (參數(shù)表參數(shù)表) /函數(shù)體函數(shù)體 314.3 4.3 運算符重載運算符重載運算符重載為類的友元函數(shù)運算符重載為類的友元函數(shù) 雙目運算符重載為類

22、的友元函數(shù)雙目運算符重載為類的友元函數(shù)運算符函數(shù)參數(shù)表有兩個參數(shù)。運算符函數(shù)參數(shù)表有兩個參數(shù)。兩個操作數(shù)依次傳遞給運算符函數(shù)的兩個參數(shù)。兩個操作數(shù)依次傳遞給運算符函數(shù)的兩個參數(shù)。采用友元函數(shù)重載雙目運算符采用友元函數(shù)重載雙目運算符 后,調(diào)用方式。后,調(diào)用方式。objectX objectY; /用戶用戶表達式表達式operator(objectX , objectY); /系統(tǒng)內(nèi)部表示系統(tǒng)內(nèi)部表示324.3 4.3 運算符重載運算符重載運算符重載為類的友元函數(shù)運算符重載為類的友元函數(shù)雙目運算符重載為類的友元函數(shù)雙目運算符重載為類的友元函數(shù)例例4.2 4.2 重載復(fù)數(shù)的重載復(fù)數(shù)的“+”+”運算符

23、為復(fù)數(shù)類運算符為復(fù)數(shù)類的友元函數(shù)形式的友元函數(shù)形式class Complexfriend Complex operator+(Complex x, Complex y);private:double real;double image;public: /;334.3 4.3 運算符重載運算符重載Complex operator+(Complex x, Complex y) return Complex(x.real+y.real, x.image+y.image); 主函數(shù)中主函數(shù)中: Complex a(2.3, 4.6), b(3.6, 2.8), c; c = a + b; /等同于等同

24、于c = operator+(a, b); c.Print();344.3 4.3 運算符重載運算符重載運算符重載為類的友元函數(shù)運算符重載為類的友元函數(shù)單目運算符重載為類的友元函數(shù)單目運算符重載為類的友元函數(shù) 運算符函數(shù)參數(shù)表只有一個參數(shù)。運算符函數(shù)參數(shù)表只有一個參數(shù)。 當(dāng)前對象作為一個顯式的操作數(shù)傳遞給形參。當(dāng)前對象作為一個顯式的操作數(shù)傳遞給形參。例子:例子:354.3 4.3 運算符重載運算符重載class coord int x, y;public: coord(int i = 0, int j = 0):x(i), y(j) void print() coutx:x,y:y和輸出運算符

25、和輸出運算符必須重載為友元函必須重載為友元函數(shù)。數(shù)。424.4 4.4 設(shè)計舉例設(shè)計舉例v 友元提供了不同類或?qū)ο蟮某蓡T函數(shù)之間、類的友元提供了不同類或?qū)ο蟮某蓡T函數(shù)之間、類的成員函數(shù)與一般函數(shù)之間進行數(shù)據(jù)共享的機制。成員函數(shù)與一般函數(shù)之間進行數(shù)據(jù)共享的機制。例例1 1:使用友元函數(shù)計算兩點間距離。:使用友元函數(shù)計算兩點間距離。#include#includeclass Point int x, y;public: Point(int xx = 0, int yy = 0):x(xx), y(yy) int GetX() return x; int GetY() return y; frien

26、d float fDist(Point &a, Point &b);434.4 4.4 設(shè)計舉例設(shè)計舉例float fDist(Point &p1, Point &p2) return float(sqrt(p1.x-p2.x)*(p1.x-p2.x)+ (p1.y-p2.y)*(p1.y-p2.y);void main() Point myp1(1, 1), myp2(4, 5); cout“The distance is: ” fDist(myp1, myp2)endl;444.4 4.4 設(shè)計舉例設(shè)計舉例例例2 2:教師修改學(xué)生的成績:教師修改學(xué)生的成績#includeclass Stu

27、dent;class Teacherpublic: void Rework(Student &p, float y);454.4 4.4 設(shè)計舉例設(shè)計舉例class Student float grade;public: Student(float x):grade(x) void print() coutgrade=gradeendl; friend void Teacher:Rework(Student &p, float y);464.4 4.4 設(shè)計舉例設(shè)計舉例void main() Student wu(80.5); Teacher wang; cout修改前成績:修改前成績:; w

28、u.print(); wang.Rework(wu, 90); cout修改后成績:修改后成績:; wu.print();void Teacher:Rework(Student &p, float y) p.grade = y; 修改前成績:修改前成績:grade=80.5修改后成績:修改后成績:grade=90474.4 4.4 設(shè)計舉例設(shè)計舉例例例3 3 數(shù)組類設(shè)計數(shù)組類設(shè)計 C C語言提供的數(shù)組功能存在問題:語言提供的數(shù)組功能存在問題: 一旦定義了數(shù)組,則數(shù)組長度固定,不能修改。一旦定義了數(shù)組,則數(shù)組長度固定,不能修改。如:如:int a10;int a10; 數(shù)組的下界下標固定為數(shù)組的

29、下界下標固定為0 0。 不對數(shù)組不標越界進行檢查。如:不對數(shù)組不標越界進行檢查。如:int a10;for(int i = 0; i15; i+) ai = i; coutaiendl;484.4 4.4 設(shè)計舉例設(shè)計舉例例例3 3 數(shù)組類設(shè)計數(shù)組類設(shè)計 C C語言提供的數(shù)組功能存在問題:語言提供的數(shù)組功能存在問題:不能直接獲取一個數(shù)組的長度。如:不能直接獲取一個數(shù)組的長度。如:char a= hello;int len = 1, i=0;while(ai+ != 0) len+;coutlen;494.4 4.4 設(shè)計舉例設(shè)計舉例例例3 3 數(shù)組類設(shè)計數(shù)組類設(shè)計 C+C+語言系統(tǒng)類庫中提供的

30、數(shù)組類語言系統(tǒng)類庫中提供的數(shù)組類Array Array 的設(shè)計的設(shè)計方法:方法: 可自定義下界下標和上界下標??勺远x下界下標和上界下標。 可對下標越界進行檢查。可對下標越界進行檢查。 可重置數(shù)組大小??芍刂脭?shù)組大小。 可知道數(shù)組的長度。可知道數(shù)組的長度。 數(shù)組類的對象可使用賦值運算符(數(shù)組類的對象可使用賦值運算符(= =)和下標)和下標運算符(運算符()。)。504.4 4.4 設(shè)計舉例設(shè)計舉例class Array int size, low, up; double* arr;public: Array(int sz=100); Array(int l, int u); Array(con

31、st Array& a); Array(); void operator=(const Array& a); double& operator(int ndx) const; void Resize(int sz); void Resize(int ll, int hh); int ArraySize(void) const;514.4 4.4 設(shè)計舉例設(shè)計舉例Array:Array(int sz) if(sz=0) exit(0); low = 0; up = sz-1; size = sz; arr = new doublesize;Array:Array(int l, int u) low = l; up = u; size = up-low+1; arr = new doublesize;524.4 4.4 設(shè)計舉例設(shè)計舉例Array:Array(const Array& a) low = a.low; up = a.up; int n = a.size; size = n; arr = new doublesize; double* sourcePtr = a.arr; double* destPtr = arr; while(n-) *destPtr+ = *sourcePtr+;534.4 4.4 設(shè)計舉例設(shè)計舉例A

溫馨提示

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

評論

0/150

提交評論