版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.C prime 復(fù)制控制 復(fù)制構(gòu)造函數(shù),賦值控制,復(fù)制控制當(dāng)定義一個(gè)新類型的時(shí)候,需要顯式或隱式地指定復(fù)制、賦值和撤銷該類型的對(duì)象時(shí)會(huì)發(fā)生什么這是通過定義特殊成員:復(fù)制構(gòu)造函數(shù)、賦值操作符和析構(gòu)函數(shù)來到達(dá)的。假設(shè)沒有顯式定義復(fù)制構(gòu)造函數(shù)或賦值操作符,編譯器通常會(huì)為我們定義。復(fù)制構(gòu)造函數(shù)是一種特殊構(gòu)造函數(shù),具有單個(gè)形參,該形參常用 const 修飾是對(duì)該類類型的引用。當(dāng)定義一個(gè)新對(duì)象并用一個(gè)同類型的對(duì)象對(duì)它進(jìn)展初始化時(shí),將顯式使用復(fù)制構(gòu)造函數(shù)。當(dāng)將該類型的對(duì)象傳遞給函數(shù)或函數(shù)返回該類型的對(duì)象時(shí),將隱式使用復(fù)制構(gòu)造函數(shù)。不管類是否認(rèn)義了自己的析構(gòu)函數(shù),編譯器都自動(dòng)執(zhí)行類中非&
2、#160;static 數(shù)據(jù)成員的析構(gòu)函數(shù)。在下一章我們將進(jìn)一步學(xué)習(xí)操作符重載,本章中我們先介紹賦值操作符。與構(gòu)造函數(shù)一樣,賦值操作符可以通過指定不同類型的右操作數(shù)而重載。右操作數(shù)為類類型的版本比較特殊:假設(shè)我們沒有編寫這種版本,編譯器將為我們合成一個(gè)。復(fù)制構(gòu)造函數(shù)、賦值操作符和析構(gòu)函數(shù)總稱為復(fù)制控制。編譯器自動(dòng)實(shí)現(xiàn)這些操作,但類也可以定義自己的版本。通常,編譯器合成的復(fù)制控制函數(shù)是非常精練的它們只做必需的工作。但對(duì)某些類而言,依賴于默認(rèn)定義會(huì)導(dǎo)致災(zāi)難。實(shí)現(xiàn)復(fù)制控制操作最困難的部分,往往在于識(shí)別何時(shí)需要覆蓋默認(rèn)版本。有一種特別常見的情況需要類定義自己的復(fù)制控制成員的:類具有指針成員。
3、復(fù)制構(gòu)造函數(shù)只有單個(gè)形參,而且該形參是對(duì)本類類型對(duì)象的引用常用 const 修飾,這樣的構(gòu)造函數(shù)稱為復(fù)制構(gòu)造函數(shù)。與默認(rèn)構(gòu)造函數(shù)一樣,復(fù)制構(gòu)造函數(shù)可由編譯器隱式調(diào)用。復(fù)制構(gòu)造函數(shù)可用于:根據(jù)另一個(gè)同類型的對(duì)象顯式或隱式初始化一個(gè)對(duì)象。復(fù)制一個(gè)對(duì)象,將它作為實(shí)參傳給一個(gè)函數(shù)。從函數(shù)返回時(shí)復(fù)制一個(gè)對(duì)象。初始化順序容器中的元素。根據(jù)元素初始化式列表初始化數(shù)組元素。當(dāng)用于類類型對(duì)象時(shí),初始化的復(fù)制形式和直接形式有所不同:直接初始化直接調(diào)用與實(shí)參匹配的構(gòu)造函數(shù),復(fù)制初始化總是調(diào)用復(fù)制構(gòu)造函數(shù)。復(fù)制初始化首先使用指定構(gòu)造函數(shù)創(chuàng)立一個(gè)臨時(shí)對(duì)象第 7.3.2 節(jié),然后用
4、復(fù)制構(gòu)造函數(shù)將那個(gè)臨時(shí)對(duì)象復(fù)制到正在創(chuàng)立的對(duì)象: string null_book = "9-999-99999-9" / copy-initialization string dots10, '.'
5、;/ direct-initialization string empty_copy = string; / copy-initialization string empty_direct;
6、0; / direct-initialization創(chuàng)立 dots 時(shí),調(diào)用參數(shù)為一個(gè)數(shù)量和一個(gè)字符的 string 構(gòu)造函數(shù)并直接初始化 dots 的成員。創(chuàng)立 null_book 時(shí),編譯器首先調(diào)用承受一個(gè) C 風(fēng)格字符串形參的 string 構(gòu)造函數(shù),創(chuàng)立一個(gè)臨時(shí)對(duì)象,然后,編譯器使用 string 復(fù)制構(gòu)造函數(shù)將 null_book 初始化為那個(gè)臨時(shí)對(duì)象的副本。empty_copy
7、160;和 empty_direct 的初始化都調(diào)用默認(rèn)構(gòu)造函數(shù)。對(duì)前者初始化時(shí),默認(rèn)構(gòu)造函數(shù)函數(shù)創(chuàng)立一個(gè)臨時(shí)對(duì)象,然后復(fù)制構(gòu)造函數(shù)用該對(duì)象初始化 empty_copy。對(duì)后者初始化時(shí),直接運(yùn)行 empty_direct 的默認(rèn)構(gòu)造函數(shù)。通常直接初始化和復(fù)制初始化僅在低級(jí)別上存在差異。然而,對(duì)于不支持復(fù)制的類型,或者使用非 explicit 構(gòu)造函數(shù)第 12.4.4 節(jié)的進(jìn)修,它們有本質(zhì)區(qū)別: ifstream file1"fi
8、lename" / ok: direct initialization ifstream file2 = "filename" / error: copy constructor is private / This initialization is okay only
9、160;if / the Sales_itemconst string& constructor is not explicit Sales_item item = string"9-999-99999-9"file1 的初始化是正確的。ifstream 類定義了一個(gè)可用 C 風(fēng)格字符串調(diào)用的構(gòu)造函數(shù),使用該構(gòu)造函
10、數(shù)初始化 file1。看上去等效的 file2 初始化使用復(fù)制初始化,但該定義不正確。由于不能復(fù)制 IO 類型的對(duì)象第 8.1 節(jié),所以不能對(duì)那些類型的對(duì)象使用復(fù)制初始化。item 的初始化是否正確,取決于正在使用哪個(gè)版本的 Sales_item 類。某些版本將參數(shù)為一個(gè) string 的構(gòu)造函數(shù)定義為 explicit。假設(shè)構(gòu)造函數(shù)是顯式的,那么初始化失?。患僭O(shè)構(gòu)造函數(shù)不是顯式的,那么初始化成功。初始化容器元素復(fù)制構(gòu)造函數(shù)可用于初始化順序容器中的元素。例如,可以用
11、表示容量的單個(gè)形參來初始化容器第 3.3.1 節(jié)。容器的這種構(gòu)造方式使用默認(rèn)構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù): / default string constructor and five string copy constructors invoked vector<string> svec5;編譯器首先使用 string 默認(rèn)構(gòu)造函數(shù)創(chuàng)立
12、一個(gè)臨時(shí)值來初始化 svec,然后使用復(fù)制構(gòu)造函數(shù)將臨時(shí)值復(fù)制到 svec 的每個(gè)元素。構(gòu)造函數(shù)與數(shù)組元素假設(shè)沒有為類類型數(shù)組提供元素初始化式,那么將用默認(rèn)構(gòu)造函數(shù)初始化每個(gè)元素。然而,假設(shè)使用常規(guī)的花括號(hào)括住的數(shù)組初始化列表第 4.1.1 節(jié)來提供顯式元素初始化式,那么使用復(fù)制初始化來初始化每個(gè)元素。根據(jù)指定值創(chuàng)立適當(dāng)類型的元素,然后用復(fù)制構(gòu)造函數(shù)將該值復(fù)制到相應(yīng)元素: Sales_item primer_eds = string"0
13、-201-16487-6", string"0-201-54848-8",
14、60; string"0-201-82470-1", &
15、#160; Sales_item 如前三個(gè)元素的初始化式中所示可以直接指定一個(gè)值,用于調(diào)
16、用元素類型的單實(shí)參構(gòu)造函數(shù)。假設(shè)希望不指定實(shí)參或指定多個(gè)實(shí)參,就需要使用完好的構(gòu)造函數(shù)語(yǔ)法,正如最后一個(gè)元素的初始化那樣。合成的復(fù)制構(gòu)造函數(shù)假設(shè)我們沒有定義復(fù)制構(gòu)造函數(shù),編譯器就會(huì)為我們合成一個(gè)。與合成的默認(rèn)構(gòu)造函數(shù)第 12.4.3 節(jié)不同,即使我們定義了其他構(gòu)造函數(shù),也會(huì)合成復(fù)制構(gòu)造函數(shù)。合成復(fù)制構(gòu)造函數(shù)的行為是,執(zhí)行逐個(gè)成員初始化,將新對(duì)象初始化為原對(duì)象的副本。所謂“逐個(gè)成員,指的是編譯器將如今對(duì)象的每個(gè)非 static 成員,依次復(fù)制到正創(chuàng)立的對(duì)象。只有一個(gè)例外,每個(gè)成員摟類型決定了復(fù)制該成員的含義。合成復(fù)制構(gòu)造函數(shù)直接復(fù)制內(nèi)置類型成員的值,類類型
17、成員使用該類的復(fù)制構(gòu)造函數(shù)進(jìn)展復(fù)制。數(shù)組成員的復(fù)制是個(gè)例外。雖然一般不能復(fù)制數(shù)組,但假設(shè)一個(gè)類具有數(shù)組成員,那么合成復(fù)制構(gòu)造函數(shù)將復(fù)制數(shù)組。復(fù)制數(shù)組時(shí)合成復(fù)制構(gòu)造函數(shù)將復(fù)制數(shù)組的每一個(gè)元素。逐個(gè)成員初始化最簡(jiǎn)單的概念模型是,將合成復(fù)制構(gòu)造函數(shù)看作這樣一個(gè)構(gòu)造函數(shù):其中每個(gè)數(shù)據(jù)成員在構(gòu)造函數(shù)初始化列表中進(jìn)展初始化。例如,對(duì)于我們的 Sales_item 類,它有三個(gè)數(shù)據(jù)成員: class Sales_item / other
18、60;members and constructors as before private: std:string isbn; int units_sold; do
19、uble revenue; 合成復(fù)制構(gòu)造函數(shù)如下所示: Sales_item:Sales_itemconst Sales_item &orig: isbnorig.isbn,
20、;/ uses string copy constructor units_soldorig.units_sold, / copies orig.units_sold revenueorig.revenue
21、160;/ copy orig.revenue / empty body定義自己的復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù)就是承受單個(gè)
22、類類型引用形參通常用 const 修飾的構(gòu)造函數(shù): class Foo public: Foo; / default constructor
23、; Fooconst Foo& / copy constructor / . 雖然也可以定義承受非 const 引用的復(fù)制構(gòu)造函數(shù),但形參通常是一個(gè) const 引用。因?yàn)橛糜谙蚝瘮?shù)傳遞對(duì)象和從函數(shù)返回對(duì)象,該構(gòu)造函數(shù)一般不應(yīng)設(shè)置為 explicit第 12.4.4 節(jié)。復(fù)制構(gòu)造函數(shù)應(yīng)
24、將實(shí)參的成員復(fù)制到正在構(gòu)造的對(duì)象。對(duì)許多類而言,合成復(fù)制構(gòu)造函數(shù)只完成必要的工作。只包含類類型成員或內(nèi)置類型但不是指針類型成員的類,無(wú)須顯式地定義復(fù)制構(gòu)造函數(shù),也可以復(fù)制。通常,定義復(fù)制構(gòu)造函數(shù)最困難的部分在于認(rèn)識(shí)到需要復(fù)制構(gòu)造函數(shù)。只要能認(rèn)識(shí)到需要復(fù)制構(gòu)造函數(shù),定義構(gòu)造函數(shù)一般非常簡(jiǎn)單。復(fù)制構(gòu)造函數(shù)的定義與其他構(gòu)造函數(shù)一樣:它與類同名,沒有返回值,可以而且應(yīng)該使用構(gòu)造函數(shù)初始化列表初始化新創(chuàng)立對(duì)象的成員,可以在函數(shù)體中做任何其他必要工作。13.1.3. 制止復(fù)制有些類需要完全制止復(fù)制。例如,iostream 類就不允許復(fù)制第 8.1 節(jié)。假設(shè)想要制止復(fù)
25、制,似乎可以省略復(fù)制構(gòu)造函數(shù),然而,假設(shè)不定義復(fù)制構(gòu)造函數(shù),編譯器將合成一個(gè)。 為了防止復(fù)制,類必須顯式聲明其復(fù)制構(gòu)造函數(shù)為 private。假設(shè)復(fù)制構(gòu)造函數(shù)是私有的,將不允許用戶代碼復(fù)制該類類型的對(duì)象,編譯器將回絕任何進(jìn)展復(fù)制的嘗試。然而,類的友元和成員仍可以進(jìn)展復(fù)制。假設(shè)想要連友元和成員中的復(fù)制也制止,就可以聲明一個(gè)private復(fù)制構(gòu)造函數(shù)但不對(duì)其定義。聲明而不定義成員函數(shù)是合法的,但是,使用未定義成員的任何嘗試將導(dǎo)致鏈接失敗。通過聲明但不定義private 復(fù)制構(gòu)造函數(shù),可以制止任何復(fù)制類類型對(duì)象的嘗試:用戶代碼中復(fù)制嘗試將在編譯時(shí)標(biāo)記為錯(cuò)誤,
26、而成員函數(shù)和友元中的復(fù)制嘗試將在鏈接時(shí)導(dǎo)致錯(cuò)誤。不定義復(fù)制構(gòu)造函數(shù)和或默認(rèn)構(gòu)造函數(shù),會(huì)嚴(yán)重局限類的使用。不允許復(fù)制的類對(duì)象只能作為引用傳遞給函數(shù)或從函數(shù)返回,它們也不能用作容器的元素。一般來說,最好顯式或隱式定義默認(rèn)構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù)。只有不存在其他構(gòu)造函數(shù)時(shí)才合成默認(rèn)構(gòu)造函數(shù)。假設(shè)定義了復(fù)制構(gòu)造函數(shù),也必須定義默認(rèn)構(gòu)造函數(shù)。賦值操作符與類要控制初始化對(duì)象的方式一樣,類也定義了該類型對(duì)象賦值時(shí)會(huì)發(fā)生什么: Sales_item trans, accum;
27、trans = accum;與復(fù)制構(gòu)造函數(shù)一樣,假設(shè)類沒有定義自己的賦值操作符,那么編譯器會(huì)合成一個(gè)。介紹重載賦值像任何其他函數(shù)一樣,操作符函數(shù)有一個(gè)返回值和一個(gè)形參表。形參表必須具有與該操作符數(shù)目一樣的形參假設(shè)操作符是一個(gè)類成員,那么包括隱式 this 形參。賦值是二元運(yùn)算,所以該操作符函數(shù)有兩個(gè)形參:第一個(gè)形參對(duì)應(yīng)著左操作數(shù),第二個(gè)形參對(duì)應(yīng)右操作數(shù)。大多數(shù)操作符可以定義為成員函數(shù)或非成員函數(shù)。當(dāng)操作符為成員函數(shù)時(shí),它的第一個(gè)操作數(shù)隱式綁定到 this 指針。有些操作符包括賦值操作符必須是定義自己的類的成員。因?yàn)橘x值必須是類的成員,
28、所以 this 綁定到指向左操作數(shù)的指針。因此,賦值操作符承受單個(gè)形參,且該形參是同一類類型的對(duì)象。右操作數(shù)一般作為 const 引用傳遞。賦值操作符的返回類型應(yīng)該與內(nèi)置類型賦值運(yùn)算返回的類型一樣第 5.4.1 節(jié)。內(nèi)置類型的賦值運(yùn)算返回對(duì)左操作數(shù)的引用,因此,賦值操作符也返回對(duì)同一類類型的引用。例如,Sales_item 的賦值操作符可以聲明為: class Sales_item pub
29、lic: / other members as before / equivalent to the synthesized assignment operator Sales_it
30、em& operator=const Sales_item & /這個(gè)模糊返回 *this; 撤銷一個(gè)容器不管是標(biāo)準(zhǔn)庫(kù)容器還是內(nèi)置數(shù)組時(shí),也會(huì)運(yùn)行容器中的類類型元素的析構(gòu)函數(shù): Sales_item *p = new Sales_item10;&
31、#160;/ dynamically allocated vector<Sales_item> vecp, p + 10; / local object ,容器中元素是拷貝 / . &
32、#160; delete p; / array is freed; destructor run on each element / vec goes out of scope; destructor run on each element容器中的元素總是按逆
33、序撤銷:首先撤銷下標(biāo)為 size - 1 的元素,然后是下標(biāo)為 size - 2 的元素直到最后撤銷下標(biāo)為 0 的元素。合成賦值操作符合成賦值操作符與合成復(fù)制構(gòu)造函數(shù)的操作類似。它會(huì)執(zhí)行逐個(gè)成員賦值:右操作數(shù)對(duì)象的每個(gè)成員賦值給左操作數(shù)對(duì)象的對(duì)應(yīng)成員。除數(shù)組之外,每個(gè)成員用所屬類型的常規(guī)方式進(jìn)展賦值。對(duì)于數(shù)組,給每個(gè)數(shù)組元素賦值。例如,Sales_item 的合成賦值操作符可能如下所示: / equivalent
34、60;to the synthesized assignment operator Sales_item& Sales_item:operator=const Sales_item &rhs isbn = rhs.isbn
35、; / calls string:operator= units_sold = rhs.units_sold; / uses built-in int assignment
36、60; revenue = rhs.revenue; / uses built-in double assignment return *this; 合成賦值操作符根據(jù)成員類型使用適宜的內(nèi)置或類定義的賦值操作符,依次給每個(gè)成員
37、賦值,該操作符返回 *this,它是對(duì)左操作數(shù)對(duì)象的引用。合成賦值操作符根據(jù)成員類型使用適宜的內(nèi)置或類定義的賦值操作符,依次給每個(gè)成員賦值,該操作符返回 *this,它是對(duì)左操作數(shù)對(duì)象的引用。一般而言,假設(shè)類需要復(fù)制構(gòu)造函數(shù),它也會(huì)需要賦值操作符。這邊所說的需要是指需要自己定義。比方:包含指針類型有一些特定的工作要做何時(shí)調(diào)用析構(gòu)函數(shù)撤銷類對(duì)象時(shí)會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù): / p points to default constructed object &
38、#160; Sales_item *p = new Sales_item; / new
39、 scope Sales_item item*p; / copy constructor copies *p into item delete p;
40、0; / destructor called on object pointed to by p / exit loca
41、l scope; destructor called on item變量如 item在超出作用域時(shí)應(yīng)該自動(dòng)撤銷。因此,當(dāng)遇到右花括號(hào)時(shí),將運(yùn)行 item 的析構(gòu)函數(shù)。動(dòng)態(tài)分配的對(duì)象只有在指向該對(duì)象的指針被刪除時(shí)才撤銷。假設(shè)沒有刪除指向動(dòng)態(tài)對(duì)象的指針,那么不會(huì)運(yùn)行該對(duì)象的析構(gòu)函數(shù),對(duì)象就一直存在,從而導(dǎo)致內(nèi)存泄漏,而且,對(duì)象內(nèi)部使用的任何資源也不會(huì)釋放。 當(dāng)對(duì)象的引用或指針超出作用域時(shí),不會(huì)運(yùn)行析構(gòu)函數(shù)。只有刪除指向動(dòng)態(tài)分配對(duì)象的指針或?qū)嶋H對(duì)象而不是對(duì)象的引用超出作用域時(shí),才會(huì)運(yùn)行析構(gòu)函數(shù)。何時(shí)編寫顯式析構(gòu)
42、函數(shù)許多類不需要顯式析構(gòu)函數(shù),尤其是具有構(gòu)造函數(shù)的類不一定需要定義自己的析構(gòu)函數(shù)。僅在有些工作需要析構(gòu)函數(shù)完成時(shí),才需要析構(gòu)函數(shù)。析構(gòu)函數(shù)通常用于釋放在構(gòu)造函數(shù)或在對(duì)象生命期內(nèi)獲取的資源。 假設(shè)類需要析構(gòu)函數(shù),那么它也需要賦值操作符和復(fù)制構(gòu)造函數(shù),這是一個(gè)有用的經(jīng)歷法那么。這個(gè)規(guī)那么常稱為三法那么,指的是假設(shè)需要析構(gòu)函數(shù),那么需要所有這三個(gè)復(fù)制控制成員。指針或特定操作析構(gòu)函數(shù)并不僅限于用來釋放資源。一般而言,析構(gòu)函數(shù)可以執(zhí)行任意操作,該操作是類設(shè)計(jì)者希望在該類對(duì)象的使用完畢之后執(zhí)行的。合成析構(gòu)函數(shù)與復(fù)制構(gòu)造函數(shù)或賦值操作符不同,編譯器總是會(huì)為我們合成一個(gè)析構(gòu)函數(shù)。合成析構(gòu)
43、函數(shù)按對(duì)象創(chuàng)立時(shí)的逆序撤銷每個(gè)非 static 成員,因此,它按成員在類中聲明次序的逆序撤銷成員。對(duì)于類類型的每個(gè)成員,合成析構(gòu)函數(shù)調(diào)用該成員的析構(gòu)函數(shù)來撤銷對(duì)象。如何編寫析構(gòu)函數(shù)Sales_item 類是類沒有分配資源因此不需要自己的析構(gòu)函數(shù)的一個(gè)例子。分配了資源的類一般需要定義析構(gòu)函數(shù)以釋放那些資源。析構(gòu)函數(shù)是個(gè)成員函數(shù),它的名字是在類名字之前加上一個(gè)代字號(hào),它沒有返回值,沒有形參。因?yàn)椴荒苤付ㄈ魏涡螀?,所以不能重載析構(gòu)函數(shù)。雖然可以為一個(gè)類定義多個(gè)構(gòu)造函數(shù),但只能提供一個(gè)析構(gòu)函數(shù),應(yīng)用于類的所有對(duì)象。 析構(gòu)函數(shù)與復(fù)制構(gòu)造函數(shù)或賦值操作符之間的一個(gè)重
44、要區(qū)別是,即使我們編寫了自己的析構(gòu)函數(shù),合成析構(gòu)函數(shù)仍然運(yùn)行。例如,可以為 Sales_item: 類編寫如下的空析構(gòu)函數(shù): class Sales_item public: / empty; no work to do other than destroying
45、160;the members, / which happens automatically Sales_item / other members as before
46、 撤銷 Sales_item 類型的對(duì)象時(shí),將運(yùn)行這個(gè)什么也不做的析構(gòu)函數(shù),它執(zhí)行完畢后,將運(yùn)行合成析構(gòu)函數(shù)以撤銷類的成員。合成析構(gòu)函數(shù)調(diào)用 string 析構(gòu)函數(shù)來撤銷 string 成員,string 析構(gòu)函數(shù)釋放了保存 isbn 的內(nèi)存。units_sold 和 revenue 成員是內(nèi)置類型,所以合成析構(gòu)函數(shù)撤銷它們不需要做什么。 1. 調(diào)用相應(yīng)的夠著函數(shù)隱式轉(zhuǎn)化,然后調(diào)用復(fù)制構(gòu)造函數(shù)
47、60; string"0-201-54848-8", &
48、#160; string"0-201-82470-1",
49、; Sales_item 如前三個(gè)元素的初始化式中所示可以直接指定一個(gè)值,用于調(diào)用元素類型的單實(shí)參構(gòu)造函數(shù)。假設(shè)希望不指定實(shí)參或指定多個(gè)實(shí)參,就需要使用完好的構(gòu)造函數(shù)語(yǔ)法,正如最后一個(gè)
50、元素的初始化那樣。#include <iostream>#include <string>using namespace std;class Testpublic:Teststring as = a;Teststring b, int kinds = b;cout << "this functioin is called!" << endl;void outcout << s << endl;private:string s;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端建筑用無(wú)縫鋼管采購(gòu)協(xié)議2篇
- 2025版大型養(yǎng)殖場(chǎng)專用鴨苗采購(gòu)合同模板3篇
- 2025版智能交通信號(hào)系統(tǒng)建設(shè)與運(yùn)營(yíng)服務(wù)合同3篇
- 2025版情侶戀愛情感培養(yǎng)合同模板9篇
- 2025年度鋼管行業(yè)產(chǎn)業(yè)鏈整合與升級(jí)合同2篇
- 2025-2030全球防篡改技術(shù)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球全自動(dòng)電池包裝機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2024年全國(guó)現(xiàn)場(chǎng)流行病學(xué)調(diào)查職業(yè)技能競(jìng)賽考試題庫(kù)-上部分(600題)
- 2025-2030全球真空度測(cè)試儀行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2024年禁毒知識(shí)競(jìng)賽試題庫(kù)(多選題)
- 七上-動(dòng)點(diǎn)、動(dòng)角問題12道好題-解析
- 2024年九省聯(lián)考新高考 數(shù)學(xué)試卷(含答案解析)
- 紅色歷史研學(xué)旅行課程設(shè)計(jì)
- 下運(yùn)動(dòng)神經(jīng)元損害綜合征疾病演示課件
- 北師大版三年級(jí)數(shù)學(xué)(上冊(cè))看圖列式計(jì)算(完整版)
- 2023中考地理真題(含解析)
- 麻醉藥品、精神藥品月檢查記錄表
- 浙江省寧波市海曙區(qū)2022學(xué)年第一學(xué)期九年級(jí)期末測(cè)試科學(xué)試題卷(含答案和答題卡)
- 高考英語(yǔ)詞匯3500電子版
- 建院新聞社成立策劃書
- JJF 1101-2019環(huán)境試驗(yàn)設(shè)備溫度、濕度參數(shù)校準(zhǔn)規(guī)范
評(píng)論
0/150
提交評(píng)論