




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章運算符重載本章要點
介紹運算符重載的概念,指出運算符重載的實質就是函數(shù)重載,給出運算符重載函數(shù)定義的一般格式。通過對兩個復數(shù)相加運算符重載的例子,我們要講解運算符重載函數(shù)作為類的成員函數(shù)和友元函數(shù)的方法。最后分別對雙目運算符和單目運算符進行了重載。特別給出單目運算符的前置自增和后置自增的區(qū)別。轉換構造函數(shù)和類型轉換函數(shù)是本章的難點。本章內容包括:什么是運算符重載運算符重載的方法運算符重載的規(guī)則成員函數(shù)和友元函數(shù)重載重載雙目運算符重載單目運算符重載流插入和提取運算符不同類型數(shù)據(jù)間的轉換4.1什么是運算符重載(operatoroverloading)前面介紹了函數(shù)重載,同一個函數(shù)名可以代表不同功能的函數(shù)。運算符也可以重載。5+8,5.8+3.67“+”運算符重載能適用于int、float和double型問題:將“+”運算符重載為復數(shù)相加?實現(xiàn):c3=c1+c2首先,定義一個專門的函數(shù)來實現(xiàn)復數(shù)相加例4.1通過函數(shù)來實現(xiàn)復數(shù)相加#include<iostream>usingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}Complexcomplex_add(Complex&c2);voiddisplay();private:doublereal;doubleimag;};ComplexComplex::complex_add(Complex&c2){Complexc;c.real=real+c2.real;c.imag=imag+c2.imag;returnc;}voidComplex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}intmain(){Complexc1(3,4),c2(5,-10),c3;
c3=plex_add(c2);cout<<"c1=";c1.display();cout<<"c2=";c2.display();cout<<"c1+c2=";c3.display();return0;}構造函數(shù)重載復數(shù)相加函數(shù),返回值類型為類類型調用c.real=real+c2.real;c.imag=imag+c2.imag;c.real=this->real+c2.real;c.imag=this->imag+c2.imag;c.real=c1.real+c2.real;c.imag=c1.imag+c2.imag;c3=plex_add(c2);4.2運算符重載的方法運算符重載是定義一個重載運算符的函數(shù),在需要執(zhí)行被重載的運算符時,系統(tǒng)就自動調用該函數(shù),即執(zhí)行表達式就是調用函數(shù)的過程。運算符重載是通過定義函數(shù)實現(xiàn)的,運算符重載實質上是函數(shù)的重載。一般格式:函數(shù)類型operator運算符名稱(形參表列){對運算符的重載處理}例如:復數(shù)加法的函數(shù)原型:Complexoperator+(Complex&c1,Complex&c2)函數(shù)名例4.2重載運算符用于復數(shù)相加#include<iostream>usingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}Complexoperator+(Complex&c2);voiddisplay();private:doublereal;doubleimag;};ComplexComplex::operator+(Complex&c2){Complexc;c.real=real+c2.real;c.imag=imag+c2.imag;returnc;}voidComplex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}intmain(){Complexc1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c1=";c1.display();cout<<"c2=";c2.display();cout<<"c1+c2=";c3.display();return0;}ComplexComplex::operator+(Complex&c2){returnComplex(real+c2.real,imag+c2.imag);}在執(zhí)行本句時,系統(tǒng)自動以類對象c2為實參調用c1的運算符重載函數(shù)operator+。c1+c2解釋為:c1.operator+(c2)說明:重載運算符是由相應函數(shù)實現(xiàn)的,何必對運算符重載呢?答:類的聲明和使用是分離的,所以對用戶方便。運算符重載后,其原有的功能仍保留;C++允許用戶自定義新類型,所以必須允許運算符重載,以擴大C++已有運算符的使用范圍,使其能作用于類對象,進行賦值運算、關系運算、邏輯運算和輸入輸出運算。C++沒有為類對象重新定義一批新運算符,而是,對現(xiàn)有運算符進行重載。思考題:前例中能否將一個常量和一個復數(shù)相加?
c3=3+c2;不正確;
c3=complex(3,0)+c2;正確,復數(shù)的虛部為0就是實數(shù)常量。4.3重載運算符的規(guī)則⑴C++不允許用戶定義新的運算符,只能對已有的運算符進行重載;⑵C++允許重載的運算符有:雙目運算符+(加),-(減),*(乘),/(除),%(取模)關系運算符==(等于),!=(不等于),<(小于),>(大于),<=(小于等于),>=(大于大于)邏輯運算符||(邏輯或),&&(邏輯與),&(取地址)單目運算符+(正),-(負),*(指針),&(取地址)自增自減運算符++(自增),--(自減)位運算符|(按位或),&(按位與),~(按位取反),^(按位異或),<<(左移),>>(右移)賦值運算符=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=空間申請和釋放new,delete,new[],delete[]其他運算符()(函數(shù)調用),->(成員訪問)->*(成員指針訪問),,(逗號),[](下標)不允許重載的運算符只有5個:.(成員訪問運算符).*(成員指針訪問運算符)::(域運算符)sizeof(長度運算符)?:(條件運算符)⑶重載不能改變運算符運算對象的個數(shù);⑷重載不能改變運算符的優(yōu)先級;⑸重載不能改變運算符的結合性;⑹重載運算符的函數(shù)不能有默認的參數(shù);(否則就可改變參數(shù)個數(shù))⑺重載的運算符必須和用戶定義的自定義類型的對象一起使用,其參數(shù)至少應有一個是類對象;防止用戶:intoperator+(inta,intb){return(a-b);}如果有兩個參數(shù),可以都是類對象,也可以一個是類對象,一個是C++標準類型的數(shù)據(jù):Complexoperator+(inta,Complexc){return(Complex(a+c.real,c.image);}⑻用于類對象的運算符一般必須重載,但運算符“=”和“&”例外;⑼應當使重載運算符的功能類似于該運算符作用于標準類型數(shù)據(jù)時實現(xiàn)的功能。⑽運算符重載函數(shù)可以是類的成員函數(shù),也可以是類的友元函數(shù),還可以是既非類的成員函數(shù)也非類的友元函數(shù)的普通函數(shù)。4.4運算符重載函數(shù)作為類成員函數(shù)和友元函數(shù)例4.2中,operator+作為Complex類中的成員函數(shù)。+是雙目運算符,但在該例中只有一個參數(shù),事實上有一個參數(shù)是隱含的,運算符函數(shù)是用this指針隱式地訪問類對象的成員。c1+c2解釋為:c1.operator+(c2)例4.3將運算符“+”重載為復數(shù)加法,重載函數(shù)不作為成員函數(shù),放在類外,作Complex的友元函數(shù)。#include<iostream.h>//usingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler){real=r;imag=0;}Complex(doubler,doublei){real=r;imag=i;}
friendComplexoperator+(Complex&c1,Complex&c2);voiddisplay();private:doublereal;doubleimag;};Complexoperator+(Complex&c1,Complex&c2){returnComplex(c1.real+c2.real,c1.imag+c2.imag);}
voidComplex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}intmain(){Complexc1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c1=";c1.display();cout<<"c2=";c2.display();cout<<"c1+c2=";c3.display();return0;}c1+c2解釋為:operator+(c1,c2)運算符重載函數(shù)可以是:⑴類的成員函數(shù)可以通過This指針自由地訪問本類的數(shù)據(jù)成員,少寫一個函數(shù)參數(shù)。成員函數(shù)定義:ComplexComplex::operator+(Complex&c2){returnComplex(real+c2.real,imag+c2.imag);}調用:c3=c1+c2;要求:第一個參數(shù)c1是一個類對象,而且與運算符重載函數(shù)的返回類型相同。將一個復數(shù)和一個整數(shù)相加,如c1+i;成員函數(shù)定義:
ComplexComplex::operator+(int&i){returnComplex(real+i,imag);}調用:c3=c2+i;不能寫成:c3=i+c2;此時只能將重載函數(shù)作為友元函數(shù),不能作為成員函數(shù)。⑵類的友元函數(shù)雙目運算符重載為友元函數(shù)時,在函數(shù)的形參表列中必須有兩個參數(shù)。聲明:friendComplexoperator+(Complex&c1,Complex&c2);友元函數(shù)定義:Complexoperator+(Complex&c1,Complex&c2){returnComplex(c1.real+c2.real,c1.imag+c2.imag);}調用:c3=c1+c2;形參的順序任意,不要求第一個參數(shù)必須為類對象。要求運算符左側的操作數(shù)與第一個參數(shù)對應,運算符右側的操作數(shù)與第二個參數(shù)對應。將一個復數(shù)和一個整數(shù)相加,如i+c1;聲明:friendComplexoperator+(Complex&i,Complex&c);友元函數(shù)定義:Complexoperator+(Complex&i,Complex&c){returnComplex(i+c.real,c.imag);}調用:c3=i+c2;注意:數(shù)學上的交換律不適用調用形式為:c3=c2+i時,再重載運算符“+”為:Complexoperator+(Complex&c,Complex&i){returnComplex(i+c.real,c.imag);}這樣,c3=c2+i和c3=i+c2都合法,編譯系統(tǒng)會根據(jù)表達式的形式選擇調用與之匹配的運算符重載函數(shù)。一般地,單目運算符重載為成員函數(shù),雙目運算符重載為友元函數(shù)。⑶既非類的成員函數(shù)也非類的友元函數(shù)的普通函數(shù)普通函數(shù)不能訪問類的私有成員,所以很少使用。4.5重載雙目運算符雙目運算符有兩個操作數(shù),如:3+5,a=b,i<10等,相應地,重載函數(shù)有兩個參數(shù)。例4.4定義一個字符串string類,用來存放不定長的字符串,重載運算符“==”,“<”,“>”用于定義兩個字符串的等于,小于和大于的比較運算。#include<iostream>usingnamespacestd;classString//String是用戶自己指定的類名{public:String(){p=NULL;}//默認構造函數(shù)String(char*str);//構造函數(shù)voiddisplay();private:char*p;};String::String(char*str){p=str;}voidString::display(){cout<<p;}intmain(){Stringstring1("Hello"),string2("Book");string1.display();cout<<endl;string2.display();return0;}框架#include<iostream.h>#include<string.h>classString{public:String(){p=NULL;}String(char*str);
friendbooloperator>(String&string1,String&string2);voiddisplay();private:char*p;};String::String(char*str){p=str;}voidString::display(){cout<<p;}booloperator>(String&string1,String&string2){if(strcmp(string1.p,string2.p)>0)returntrue;elsereturnfalse;}intmain(){Stringstring1("Hello"),string2("Book");cout<<(string1>string2)<<endl;return0;}string1.p指向“hello”string2.p指向“book”運算符重載函數(shù)返回值為bool,true的值為1重載運算符“>”#include<iostream.h>#include<string.h>classString{public:String(){p=NULL;}String(char*str);friendbooloperator>(String&string1,String&string2);friendbooloperator<(String&string1,String&string2);friendbooloperator==(String&string1,String&string2);voiddisplay();private:char*p;};重載三個運算符String::String(char*str){p=str;}voidString::display(){cout<<p;}booloperator>(String&string1,String&string2){if(strcmp(string1.p,string2.p)>0)returntrue;elsereturnfalse;}booloperator<(String&string1,String&string2){if(strcmp(string1.p,string2.p)<0)returntrue;elsereturnfalse;}booloperator==(String&string1,String&string2){if(strcmp(string1.p,string2.p)==0)returntrue;elsereturnfalse;}intmain(){Stringstring1("Hello"),string2("Book"),string3("Computer");cout<<(string1>string2)<<endl;cout<<(string1<string3)<<endl;cout<<(string1==string2)<<endl;return0;}#include<iostream.h>#include<string.h>classString{public:String(){p=NULL;}String(char*str);friendbooloperator>(String&string1,String&string2);friendbooloperator<(String&string1,String&string2);friendbooloperator==(String&string1,String&string2);voiddisplay();private:char*p;};String::String(char*str){p=str;}voidString::display(){cout<<p;}booloperator>(String&string1,String&string2){if(strcmp(string1.p,string2.p)>0)returntrue;elsereturnfalse;}booloperator<(String&string1,String&string2){if(strcmp(string1.p,string2.p)<0)returntrue;elsereturnfalse;}booloperator==(String&string1,String&string2){if(strcmp(string1.p,string2.p)==0)returntrue;elsereturnfalse;}voidcompare(String&string1,String&string2){if(operator>(string1,string2)==1){string1.display();cout<<">";string2.display();}elseif(operator<(string1,string2)==1){string1.display();cout<<"<";string2.display();}elseif(operator==(string1,string2)==1){string1.display();cout<<"=";string2.display();}cout<<endl;}intmain(){Stringstring1("Hello"),string2("Book"),string3("Computer"),string4("Hello");compare(string1,string2);compare(string2,string3);compare(string1,string4);return0;}4.6重載單目運算符單目運算符只有一個操作數(shù),如:!a,-b,&c,*p,++I,--i等,相應地,重載函數(shù)有一個參數(shù)。例4.5有一個Time類,包含數(shù)據(jù)成員minute和second。要求制作秒表:滿60秒進位分,秒歸零。#include<iostream>usingnamespacestd;classTime{public:Time(){minute=0;sec=0;}//默認構造函數(shù)Time(intm,ints):minute(m),sec(s){}//構造函數(shù)重載Timeoperator++();//聲明運算符重載函數(shù)voiddisplay(){cout<<minute<<":"<<sec<<endl;}private:intminute;intsec;};TimeTime::operator++()//成員函數(shù)重載{if(++sec>=60){sec-=60;++minute;}return*this;//返回當前對象值}intmain(){Timetime1(34,0);for(inti=0;i<61;i++) {++time1;time1.display();}return0;}C++約定:在自增、自減運算符重載函數(shù)中,沒有形參int是前置運算符函數(shù),有形參int是后置運算符函數(shù)例4.6在前例的基礎上增加對后置運算符的重載#include<iostream>usingnamespacestd;classTime{public:Time(){minute=0;sec=0;}Time(intm,ints):minute(m),sec(s){}Timeoperator++();//聲明前置自增運算符
Timeoperator++(int);//聲明后置自增運算符voiddisplay(){cout<<minute<<":"<<sec<<endl;}private:intminute;intsec;};TimeTime::operator++(){if(++sec>=60){sec-=60;++minute;}return*this;}TimeTime::operator++(int){Timetemp(*this);sec++;if(sec>=60){sec-=60;++minute;}returntemp;}返回自加后的對象本身返回自加前的對象,然后對象自加intmain(){Timetime1(34,59),time2;cout<<"time1:";time1.display();//time原值++time1;cout<<"++time1:";time1.display();//++time后的值time2=time1++;cout<<"time1++:";time1.display();//time++后的值cout<<"time2:";time2.display();//time++前的值return0;}重載后置運算符時,多了一個int型參數(shù),增加這個參數(shù)只是為了與前置自增運算符重載函數(shù)區(qū)別,沒有別的作用,在定義函數(shù)時也不必使用此參數(shù),因此可以省寫參數(shù)名,只需要在括號中寫int即可,編譯系統(tǒng)在遇到重載后置自增運算符時,則自動調用此函數(shù)。4.7重載流插入運算符和流提取運算符C++位運算符<<(左移)和位運算符>>(右移),系統(tǒng)在ostream中進行了重載,用來輸入輸出C++標準類型的數(shù)據(jù)。<<重載為流插入運算符,屬于istream類庫;>>重載為流提取運算符,屬于ostream類庫;cin和cout分別是istream類和ostream類的對象。凡用到cout<<和cin>>對標準數(shù)據(jù)類型進行輸入輸出的,都要#include<iostream>頭文件。用戶自己定義的類的對象,是不能直接用<<和>>來輸入和輸出的,所以必須進行重載。對<<和>>重載的函數(shù)形式為:
istream&operator>>(istream&,自定義類&);ostream&operator<<(ostream&,自定義類&);第一個參數(shù)和函數(shù)的類型都必須是istream&或ostream&類型,第二個參數(shù)是要進行輸入輸出操作的類。只能將重載>>和<<的函數(shù)作為友元函數(shù)或普通函數(shù),而不能定義為成員函數(shù)。4.7.1重載流插入運算符“<<”例4.7用運算符<<輸出復數(shù)#include<iostream.h>classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}Complexoperator+(Complex&c2);
friendostream&operator<<(ostream&,Complex&);private:doublereal;doubleimag;};“+”運算符重載為成員函數(shù)“<<”運算符重載為友元函數(shù)ComplexComplex::operator+(Complex&c2){returnComplex(real+c2.real,imag+c2.imag);}ostream&operator<<(ostream&output,Complex&c){output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;returnoutput;}intmain(){Complexc1(2,4),c2(6,10),c3;c3=c1+c2;
cout<<c3;return0;}對于:ostream&operator<<(ostream&output,Complex&c){output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;returnoutput;}cout<<c3解釋為:operator<<(cout,c3)形參:&output&c,實參:coutc3函數(shù)體相當于:cout<<"("<<c3.real<<"+"<<c3.imag<<"i)"<<endl;returncout;最后的returncout作用是返回當前值,以便連續(xù)向輸出流插入信息。如果:cout<<c3<<c2;先處理cout<<c3,則(cout<<c3)<<c2;執(zhí)行得到新的流對象cout,cout(新值)<<c2,運算符的左側是ostream對象,右側是Complex類對象c2,再次調用運算符<<重載函數(shù),輸出c2的數(shù)據(jù)。注意:重載的流插入運算符的第二個參數(shù)為Complex&c,說明只有在輸Complex對象時才能使用本重載運算符,對其他類型的對象無效Cout<<time1;(×)4.7.2重載流提取運算符“>>”C++運算符>>的作用是從一個輸入輸出流中提取數(shù)據(jù)。重載的目的是輸入類的對象。例4.8在4.7的基礎上,增加提取運算符>>,用cin>>輸入復數(shù),用cout輸出復數(shù)。#include<iostream.h>classComplex{public:friendostream&operator<<(ostream&,Complex&);friendistream&operator>>(istream&,Complex&);private:doublereal;doubleimag;};ostream&operator<<(ostream&output,Complex&c){output<<"("<<c.real<<"+"<<c.imag<<"i)";returnoutput;}istream&operator>>(istream&input,Complex&c){cout<<"inputrealpartandimaginarypartofcomplexnumber:";input>>c.real>>c.imag;returninput;}cin>>c1解釋為:operator>>(cin,c1)形參:&intput&c,實參:cinc1函數(shù)體相當于cin>>c.real>>c.imag;returncin;最后的returncin的作用是返回當前值,以便連續(xù)從輸入流提取數(shù)據(jù)給程序中的Complex類對象。intmain(){Complexc1,c2;cin>>c1>>c2;cout<<"c1="<<c1<<endl;cout<<"c2="<<c2<<endl;return0;}注意:cin>>c1>>c2;語句,每遇到一次>>就調用一次重載運算符>>函數(shù),因此兩次提示輸入信息。觀察下列結果:ostream&operator<<(ostream&output,Complex&c){output<<"("<<c.real;if(c.imag>=0)output<<"+";output<<c.imag<<"i)";returnoutput;}修改:4.8不同類型數(shù)據(jù)間的轉換4.8.1標準類型數(shù)據(jù)間的轉換復習類型轉換:inti=6;i=7.5+i;隱式轉換int(8.9);顯式轉換問題:一個自定義的類對象能否轉換為標準類型?一個類的對象能否轉換為另一個類的對象?答:定義專門的處理函數(shù)。4.8.2轉換構造函數(shù)默認構造函數(shù)Complex();//沒有參數(shù)轉換構造函數(shù)(conversionconstructorfunction)
Complex(doubler){real=r,image=0};作用是將double型參數(shù)r轉換成Complex類對象。帶參構造函數(shù)Complex(doubler,doublei);//用于初始化復制構造函數(shù)Complex(Complex&c);//形參是本類對象的引用轉換構造函數(shù)只能有一個參數(shù)參數(shù)類型:需要轉換的類型函數(shù)體:轉換方法轉換方法:類名(準備轉換類型的數(shù)據(jù))隱式轉換,定義對象時Complexc1(3.5);//建立一個類對象real=3.5,image=0Complex(3.5);//聲明無名對象顯式轉換:若重載了“+”運算符,c,c1為對象c=c1+2.5,//編譯錯誤c=c1+Complex(2.5)//正確將一個學生類對象轉換為教師類對象,轉換構造函數(shù)為:Teacher(Student&s){num=s.num;strcpy(name,);sex=sex;}要求s中的num,name,sex是公有成員,否則不能被類外引用4.8.3類型轉換函數(shù)用轉換構造函數(shù)可以將一個指定類型的數(shù)據(jù)轉換為類的對象。但是不能反過來進行。類型轉換函數(shù)(typeconversionfunction)的作用是將一個類對象轉換成另一類型的數(shù)據(jù)。類型轉換函數(shù)也稱為:類型轉換運算符函數(shù)、類型轉換運算符重載函數(shù)、強制類型轉換運算符函數(shù)。一般形式:operator類型名(){實現(xiàn)轉換的語句}operatordouble(){returnreal;}//函數(shù)名operatordouble//將一個Complex對象轉換為一個double類型數(shù)據(jù)//其值是Complex類中數(shù)據(jù)成員real的值類型轉換函數(shù)不能指定函數(shù)類型,函數(shù)沒有參數(shù)。返回值類型是由函數(shù)名中指定的類型名來確定。類型轉換函數(shù)只能作為成員函數(shù),因為轉換的主體是本類的對象,不能作為友元函數(shù)或普通函數(shù)。double類型經(jīng)過重載后,除了原有的含義外,還獲得新的含義——將一個Complex對象轉換為double類型數(shù)據(jù),并指定了轉換方法。轉換構造函數(shù)和類型轉換運算符的共同特點:當需要時,編譯系統(tǒng)會自動調用這些函數(shù),建立一個無名的臨時對象。例4.9有類型轉換函數(shù)double,無運算符+重載函數(shù)#include<iostream>usingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}
operatordouble(){returnreal;}private:doublereal;doubleimag;};intmain(){Complexc1(3,4),c2(5,-10),c3;doubled1,d2=2.5;
d1=d2+c1;cout<<d1<<endl;return0;}類型轉換運算符函數(shù)自動調用類型轉換函數(shù)本例特點:表達式:d1=d2+c1;d2double類型數(shù)據(jù),c1是Complex類對象,無operator+重載函數(shù)。有operatordouble重載函數(shù),調用operatordouble函數(shù),把Complex對象c1轉換為double類型數(shù)據(jù),建立一個臨時的double變量,并與d2相加,最后將一個double型的值賦給d1。例4.10無類型轉換函數(shù)double,有運算符+重載函數(shù)和轉換構造函數(shù)#include<iostream.h>//usingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}//默認構造函數(shù)
Complex(doubler){real=r;imag=0;}//轉換構造函數(shù)
Complex(doubler,doublei){real=r;imag=i;}//初始化構造函數(shù)
friendComplexoperator+(Complexc1,Complexc2);//重載運算符+
friendostream&operator<<(ostream&,Complex&);//重載運算符<<private:doublereal;doubleimag;};Complexoperator+(Complexc1,Complexc2){returnComplex(c1.real+c2.real,c1.imag+c2.imag);}ostream&operator<<(ostream&output,Complex&c){output<<"("<<c.real;if(c.imag>=0)output<<"+";output<<c.imag<<"i)";returnoutput;}intmain(){Complexc1(3,4),c2(5,-10),c3;doubled1,d2=2.5;c1=c2+d2;c3=d2+c2;cout<<c1<<endl;cout<<c3<<endl;return0;}本例特點:表達式:c1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司經(jīng)營理念與產(chǎn)品管理
- 嬰兒呼吸內科就診宣教
- 腦梗死護理指南
- 彎道停車教學設計
- 消化內科醫(yī)生進修心得
- 銷售市場培訓:打造區(qū)域市場銷售鐵軍
- 節(jié)約美德教育課件
- 健康心理團學活動策劃與實施
- 大班健康活動:果蔬洗洗澡
- 2025年鋁平軋材項目規(guī)劃申請報告模板
- 2025至2030高純氯化鉀行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- ××中學實驗室?;饭芾砑殑t
- 家政服務培訓 課件
- 2025年婚姻家庭咨詢師職業(yè)資格考試試題及答案
- 2025年人教版小學五年級下冊數(shù)學期末重難點測評試題(含答案和解析)
- 2024年天津市應急管理局招聘行政執(zhí)法專職技術檢查員筆試真題
- 變電站創(chuàng)優(yōu)工程匯報
- 廣西壯族自治區(qū)欽州市2024-2025學年高二上學期期末檢測歷史試題(含答案)
- 項目部主要管理制度
- 音樂杜鵑圓舞曲教案
- DB62T 4134-2020 高速公路服務區(qū)設計規(guī)范
評論
0/150
提交評論