版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C+語言程序設(shè)計(下)多態(tài)性運(yùn)算符重載虛函數(shù)純虛函數(shù)抽象類多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計的重要特征之一。多態(tài)性是指發(fā)出同樣的消息被不同類型的對象接收時導(dǎo)致完全不同的行為。消息主要指對類的成員函數(shù)的調(diào)用。多態(tài)的實(shí)現(xiàn):函數(shù)重載運(yùn)算符重載虛函數(shù)動態(tài):運(yùn)行時的多態(tài)靜態(tài):編譯時的多態(tài)靜態(tài):編譯時的多態(tài)聯(lián)編(聯(lián)編(bindingbinding):):是指計算機(jī)程序自身彼此關(guān)聯(lián)的過程是指計算機(jī)程序自身彼此關(guān)聯(lián)的過程聯(lián)編工作在編譯連接階段完成的情況稱為:聯(lián)編工作在編譯連接階段完成的情況稱為:靜態(tài)聯(lián)編靜態(tài)聯(lián)編聯(lián)編在程序運(yùn)行階段完成的情況稱為:聯(lián)編在程序運(yùn)行階段完成的情況稱為:動態(tài)聯(lián)編動態(tài)聯(lián)編。class comple
2、x/復(fù)數(shù)類聲明public:complex(double r=0.0,double i=0.0)real=r;imag=i; /構(gòu)造函數(shù)void display( );/顯示復(fù)數(shù)的值private:double real;double imag;問題舉例問題舉例復(fù)數(shù)的運(yùn)算復(fù)數(shù)的運(yùn)算8.2 8.2 運(yùn)算符重載運(yùn)算符重載用“+”、“-”能夠?qū)崿F(xiàn)復(fù)數(shù)的加減運(yùn)算嗎?實(shí)現(xiàn)復(fù)數(shù)加減運(yùn)算的方法 重載“+”、“-”運(yùn)算符運(yùn)算符重載是對已有的運(yùn)算符賦予多重含義必要性C+中預(yù)定義的運(yùn)算符其運(yùn)算對象只能是基本數(shù)據(jù)類型,而不適用于用戶自定義類型(如類)實(shí)現(xiàn)機(jī)制將指定的運(yùn)算表達(dá)式轉(zhuǎn)化為對運(yùn)算符函數(shù)的調(diào)用,運(yùn)算對象轉(zhuǎn)化為
3、運(yùn)算符函數(shù)的實(shí)參。編譯系統(tǒng)對重載運(yùn)算符的選擇,遵循函數(shù)重載的選擇原則??梢灾剌dC+中除下列運(yùn)算符外的所有運(yùn)算符:. .* : ?:只能重載C+語言中已有的運(yùn)算符,不可臆造新的。不改變原運(yùn)算符的優(yōu)先級和結(jié)合性。不能改變操作數(shù)個數(shù)。經(jīng)重載的運(yùn)算符,其操作數(shù)中至少應(yīng)該有一個是自定義類型。重載為類成員函數(shù)。重載為友元函數(shù)。聲明形式函數(shù)類型 operator 運(yùn)算符(形參) .重載為類成員函數(shù)時 參數(shù)個數(shù)=原操作數(shù)個數(shù)-1(后置+、-除外)重載為友元函數(shù)時 參數(shù)個數(shù)=原操作數(shù)個數(shù),且至少應(yīng)該有一個自定義類型的形參。雙目運(yùn)算符 B如果要重載 B 為類成員函數(shù),使之能夠?qū)崿F(xiàn)表達(dá)式 oprd1 B oprd2
4、,其中 oprd1 為A 類對象,則 B 應(yīng)被重載為 A 類的成員函數(shù),形參類型應(yīng)該是 oprd2 所屬的類型。經(jīng)重載后,表達(dá)式 oprd1 B oprd2 相當(dāng)于 oprd1.operator B(oprd2) 將“+”、“-”運(yùn)算重載為復(fù)數(shù)類的成員函數(shù)。 規(guī)則:實(shí)部和虛部分別相加減。 操作數(shù):兩個操作數(shù)都是復(fù)數(shù)類的對象。#includeclass complex/復(fù)數(shù)類聲明public:/外部接口complex(double r=0.0,double i=0.0)real=r;imag=i; /構(gòu)造函數(shù)complex operator + (complex c2); /+重載為成員函數(shù)co
5、mplex operator - (complex c2); /-重載為成員函數(shù)void display( );/輸出復(fù)數(shù)private:/私有數(shù)據(jù)成員double real;/復(fù)數(shù)實(shí)部double imag;/復(fù)數(shù)虛部;complex complex:operator +(complex c2) /重載函數(shù)實(shí)現(xiàn)complex c;c.real=c2.real+real;c.imag=c2.imag+imag;return complex(c.real,c.imag);complex complex:operator -(complex c2) /重載函數(shù)實(shí)現(xiàn)complex c;c.real=
6、real-c2.real;c.imag=imag-c2.imag;return complex(c.real,c.imag);void complex:display( ) cout(real,imag)endl; void main( ) /主函數(shù) complex c1(5,4),c2(2,10),c3; /聲明復(fù)數(shù)類的對象coutc1=; c1.display( );coutc2=; c2.display( );c3=c1-c2;/使用重載運(yùn)算符完成復(fù)數(shù)減法coutc3=c1-c2=;c3.display( );c3=c1+c2;/使用重載運(yùn)算符完成復(fù)數(shù)加法coutc3=c1+c2=;c3
7、.display( );程序輸出的結(jié)果為:c1=(5,4)c2=(2,10)c3=c1-c2=(3,-6)c3=c1+c2=(7,14)前置單目運(yùn)算符 U如果要重載 U 為類成員函數(shù),使之能夠?qū)崿F(xiàn)表達(dá)式 U oprd,其中 oprd 為A類對象,則 U 應(yīng)被重載為 A 類的成員函數(shù),無形參。經(jīng)重載后,表達(dá)式 U oprd 相當(dāng)于 oprd.operator U( )后置單目運(yùn)算符 +和-如果要重載 +或-為類成員函數(shù),使之能夠?qū)崿F(xiàn)表達(dá)式 oprd+ 或 oprd- ,其中 oprd 為A類對象,則 +或- 應(yīng)被重載為 A 類的成員函數(shù),且具有一個 int 類型形參。經(jīng)重載后,表達(dá)式 oprd+
8、 相當(dāng)于 oprd.operator +(0)運(yùn)算符前置+和后置+重載為時鐘類的成員函數(shù)。前置單目運(yùn)算符,重載函數(shù)沒有形參,對于后置單目運(yùn)算符,重載函數(shù)需要有一個整型形參。操作數(shù)是時鐘類的對象。實(shí)現(xiàn)時間增加1秒鐘。#includeclass Clock /時鐘類聲明public:/外部接口Clock(int NewH=0, int NewM=0, int NewS=0);void ShowTime( );void operator +( ); /前置單目運(yùn)算符重載void operator +(int); /后置單目運(yùn)算符重載private:/私有數(shù)據(jù)成員int Hour, Minute, S
9、econd;void Clock:operator +( )/前置單目運(yùn)算符重載函數(shù)Second+;if(Second=60) Second=Second-60;Minute+;if(Minute=60) Minute=Minute-60;Hour+;Hour=Hour%24;cout=60) Second=Second-60;Minute+;if(Minute=60) Minute=Minute-60;Hour+;Hour=Hour%24;coutClock+: ;/其它成員函數(shù)的實(shí)現(xiàn)略void main( )Clock myClock(23,59,59);coutFirst time ou
10、tput:;myClock.ShowTime( );myClock+;myClock.ShowTime( );+myClock;myClock.ShowTime( );程序運(yùn)行結(jié)果為:First time output:23:59:59Clock+: 0:0:0+Clock: 0:0:1如果需要重載一個運(yùn)算符,使之能夠用于操作某類對象的私有成員,可以此將運(yùn)算符重載為該類的友元函數(shù)。函數(shù)的形參代表依自左至右次序排列的各操作數(shù)。后置單目運(yùn)算符 +和-的重載函數(shù),形參列表中要增加一個int,但不必寫形參名。雙目運(yùn)算符 B重載后,表達(dá)式oprd1 B oprd2 等同于operator B(oprd1
11、,oprd2 )前置單目運(yùn)算符 B重載后,表達(dá)式 B oprd 等同于operator B(oprd )后置單目運(yùn)算符 +和-重載后,表達(dá)式 oprd B 等同于operator B(oprd,0 )將+、-(雙目)重載為復(fù)數(shù)類的友元函數(shù)。兩個操作數(shù)都是復(fù)數(shù)類的對象。#includeclass complex/復(fù)數(shù)類聲明public:/外部接口complex(double r=0.0,double i=0.0) real=r; imag=i; /構(gòu)造函數(shù)friend complex operator + (complex c1,complex c2);/運(yùn)算符+重載為友元函數(shù)friend co
12、mplex operator - (complex c1,complex c2);/運(yùn)算符-重載為友元函數(shù)void display( );/顯示復(fù)數(shù)的值private:/私有數(shù)據(jù)成員double real;double imag;complex operator +(complex c1,complex c2)/運(yùn)算符重載友元函數(shù)實(shí)現(xiàn) return complex(c2.real+c1.real, c2.imag+c1.imag);complex operator -(complex c1,complex c2)/運(yùn)算符重載友元函數(shù)實(shí)現(xiàn) return complex(c1.real-c2.re
13、al, c1.imag-c2.imag);/ 其它函數(shù)和主函數(shù)同例8.1聯(lián)編:程序自身彼此關(guān)聯(lián)的過程,確定程序中的操作調(diào)用與執(zhí)行該操作的代碼間的關(guān)系。靜態(tài)聯(lián)編(靜態(tài)束定)聯(lián)編工作出現(xiàn)在編譯階段,用對象名或者類名來限定要調(diào)用的函數(shù)。動態(tài)聯(lián)編聯(lián)編工作在程序運(yùn)行時執(zhí)行,在程序運(yùn)行時才確定將要調(diào)用的函數(shù)。例例例例#includeclass Point public:Point(double i, double j) x=i; y=j;double Area( ) const return 0.0; private:double x, y;class Rectangle:public Point pub
14、lic:Rectangle(double i, double j, double k, double l);double Area( ) const return w*h; private:double w,h;靜態(tài)聯(lián)編例靜態(tài)聯(lián)編例Rectangle:Rectangle(double i, double j, double k, double l) :Point(i,j) w=k; h=l; void fun(Point &s) coutArea=s.Area( )endl; void main( )Rectangle rec(3.0, 5.2, 15.0, 25.0);fun(rec
15、);運(yùn)行結(jié)果:Area=0#includeclass Point public: Point(double i, double j) x=i; y=j; virtual double Area( ) const return 0.0; private:double x, y;class Rectangle:public Point public: Rectangle(double i, double j, double k, double l); virtual double Area( ) const return w*h; private:double w,h;/其它函數(shù)同例 8.8動態(tài)聯(lián)
16、編例動態(tài)聯(lián)編例 void fun(Point &s) coutArea=s.Area( )endl; void main( )Rectangle rec(3.0, 5.2, 15.0, 25.0);fun(rec);運(yùn)行結(jié)果:Area=375虛函數(shù)是動態(tài)聯(lián)編的基礎(chǔ)。是非靜態(tài)的成員函數(shù)。在類的聲明中,在函數(shù)原型之前寫virtual。virtual 只用來說明類聲明中的原型,不能用在函數(shù)實(shí)現(xiàn)時。具有繼承性,基類中聲明了虛函數(shù),派生類中無論是否說明,同原型函數(shù)都自動為虛函數(shù)。本質(zhì):不是重載聲明而是覆蓋。調(diào)用方式:通過基類指針或引用,執(zhí)行時會根據(jù)指針指向的對象的類,決定調(diào)用哪個函數(shù)。#incl
17、ude class B0 /基類B0聲明public:/外部接口virtual void display( ) coutB0:display( )endl; /虛成員函數(shù);class B1: public B0/公有派生 public: void display( ) coutB1:display( )endl; ;class D1: public B1/公有派生 public: void display( ) coutD1:display( )display( ); void main( ) /主函數(shù) B0 b0, *p;/聲明基類對象和指針B1 b1;/聲明派生類對象D1 d1;/聲明派生
18、類對象p=&b0;fun(p);/調(diào)用基類B0函數(shù)成員p=&b1;fun(p);/調(diào)用派生類B1函數(shù)成員p=&d1;fun(p);/調(diào)用派生類D1函數(shù)成員程序的運(yùn)行結(jié)果為:程序的運(yùn)行結(jié)果為:B0:B0:displaydisplay( )B1:B1:displaydisplay( )D1:D1:displaydisplay( )帶有純虛函數(shù)的類稱為抽象類:class 類名 virtual 類型 函數(shù)名(參數(shù)表)=0; /純虛函數(shù) .抽象類的一般形式抽象類的一般形式抽象類為抽象和設(shè)計的目的而建立,將有關(guān)的數(shù)據(jù)和行為組織在一個繼承層次結(jié)構(gòu)中,保證派生類具有要求的行為。對于暫時
19、無法實(shí)現(xiàn)的函數(shù),可以聲明為純虛函數(shù),留給派生類去實(shí)現(xiàn)。抽象類只能作為基類來使用。不能聲明抽象類的對象。#include class B0 /抽象基類B0聲明public: /外部接口virtual void display( )=0; /純虛函數(shù)成員;class B1: public B0/公有派生public:void display( )coutB1:display( )endl; /虛成員函數(shù);class D1: public B1/公有派生public:void display( )coutD1:display( )display( ); void main( )/主函數(shù) B0 *p;
20、/聲明抽象基類指針B1 b1;/聲明派生類對象D1 d1;/聲明派生類對象p=&b1;fun(p);/調(diào)用派生類B1函數(shù)成員p=&d1;fun(p);/調(diào)用派生類D1函數(shù)成員程序的運(yùn)行結(jié)果為:程序的運(yùn)行結(jié)果為:B1:B1:displaydisplay( )D1:D1:displaydisplay( )一個函數(shù)一旦被說明為虛函數(shù)一個函數(shù)一旦被說明為虛函數(shù),則無論說明它的類被繼承了多少層,在每一層派,則無論說明它的類被繼承了多少層,在每一層派生類中該函數(shù)都保持生類中該函數(shù)都保持virtualvirtual特性。因此,在派生類中特性。因此,在派生類中重新定義該函數(shù)時,不再需要關(guān)鍵字重
21、新定義該函數(shù)時,不再需要關(guān)鍵字virtualvirtual。 但習(xí)慣上,為了提高程序的可讀性,常常在每層派生類但習(xí)慣上,為了提高程序的可讀性,常常在每層派生類 中都重復(fù)地使用中都重復(fù)地使用virtualvirtual關(guān)鍵字。關(guān)鍵字。不恰當(dāng)?shù)牟磺‘?dāng)?shù)?虛函數(shù)虛函數(shù)#include#includeclass Baseclass Basepublic:public: virtual void fn(int x) virtual void fn(int x)coutIn Base class,int coutIn Base class,int =xendl;=xendl;class Subclass:
22、public Baseclass Subclass:public Base public: public: virtual void fn(float x) virtual void fn(float x) coutin subclass,float x coutin subclass,float x =xendl;=xendl;void test(Base & void test(Base & b)b)int i=1;int i=1;b.fn(i);b.fn(i);float f=2.0;float f=2.0;b.fn(f);b.fn(f); void main()void
23、 main()Base bc;Base bc;Subclass sc;Subclass sc;coutcalling coutcalling test(bc)n;test(bc)n;test(bc);test(bc);coutcalling coutcalling test(sc)n;test(sc)n;test(sc);test(sc); calling test(bc) calling test(bc) In Base class,int =1 In Base class,int =1 In Base class,int =2 In Base class,int =2 calling te
24、st(sc) calling test(sc) In Base class,int =1 In Base class,int =1 In Base class,int =2 In Base class,int =2 虛函數(shù)的虛函數(shù)的 限制限制(1 1)只有類的)只有類的 成員函數(shù)才能說明為虛函數(shù),因?yàn)樘摵瘮?shù)成員函數(shù)才能說明為虛函數(shù),因?yàn)樘摵瘮?shù)僅適用于繼承關(guān)系僅適用于繼承關(guān)系的的 類對象,所以普通函數(shù)不能說類對象,所以普通函數(shù)不能說明為虛函數(shù)。明為虛函數(shù)。(2 2)內(nèi)聯(lián)函數(shù)不能是虛函數(shù),因?yàn)閮?nèi)聯(lián)函數(shù)是在編譯時決)內(nèi)聯(lián)函數(shù)不能是虛函數(shù),因?yàn)閮?nèi)聯(lián)函數(shù)是在編譯時決定其位置。定其位置。(3 3)構(gòu)造函數(shù)
25、不能是虛函數(shù),因?yàn)闃?gòu)造時對象還是一片未)構(gòu)造函數(shù)不能是虛函數(shù),因?yàn)闃?gòu)造時對象還是一片未定型的定型的 空間??臻g。(4 4)析構(gòu)函數(shù)可以是虛函數(shù),而且通常聲明為虛函數(shù)。)析構(gòu)函數(shù)可以是虛函數(shù),而且通常聲明為虛函數(shù)。例當(dāng)基類對象和子類對象以不同方式申請了堆空間后:例當(dāng)基類對象和子類對象以不同方式申請了堆空間后:void finishWithObject(Base void finishWithObject(Base * * pHeapObject) pHeapObject) delete pHeapObject; delete pHeapObject; 例例1 1:#include#include
26、class Baseclass Basepublic:public: Base()coutconstruct in Base()coutconstruct in Basen;Basen;Base()Base()cout destruting Baseendl;cout destruting Baseendl;class Subclass:public Baseclass Subclass:public Basepublic:public:Subclass()Subclass()coutconstruct in Subclassn;coutconstruct in Subclassn;Subcl
27、ass()Subclass()cout“destruting cout“destruting Subclassendl;Subclassendl;void main()void main() coutfirst:n;coutfirst:n;Base bc;Base bc; coutsecondn; coutsecondn;Subclass sc;Subclass sc;coutend!n;coutend!n; 輸出:輸出:First:First:construct in Baseconstruct in Basesecondsecondconstruct in Baseconstruct in
28、 Baseconstruct in construct in SubclassSubclassend!end!destruting destruting SubclassSubclassdestruting Basedestruting Basedestruting Basedestruting Base例例2 2:#include#includeclass Baseclass Basepublic:public: Base()coutconstruct in Base()coutconstruct in Basen;Basen;Base()Base()cout destruting Base
29、 endl;cout destruting Base endl;class Subclass:public Baseclass Subclass:public Basepublic:public:Subclass()Subclass()coutconstruct in Subclassn;coutconstruct in Subclassn;Subclass()Subclass()cout destruting cout destruting subclassendl;subclassendl;void main()void main() coutfirst:n;coutfirst:n;Bas
30、e Base * *bc=new Base ;bc=new Base ;coutsecondn;coutsecondn;Subclass Subclass * * sc=new Subclass; sc=new Subclass;coutend!n;coutend!n; 輸出:輸出:first:first:construct in Baseconstruct in Basesecondsecondconstruct in Baseconstruct in Baseconstruct in Subclassconstruct in Subclassend!end!例例3 3:#include#i
31、ncludeclass Baseclass Basepublic:public: Base()coutconstruct in Base()coutconstruct in Basen;Basen;Base()Base()cout destruting Base endl;cout destruting Base endl;class Subclass:public Baseclass Subclass:public Basepublic: Subclass()public: Subclass() coutconstruct in coutconstruct in Subclassn;Subc
32、lassn; Subclass() Subclass() cout destruting cout destruting subclassendl;subclassendl;void test(Basevoid test(Base* * x) x) delete x; delete x; void main()void main()coutfirst:n;coutfirst:n; Base Base * *bc=new Base ;bc=new Base ; coutsecondn; coutsecondn; Subclass Subclass * * sc=new Subclass; sc=
33、new Subclass; coutcalling test(bc)n; coutcalling test(bc)n;test(bc);test(bc);coutcalling test(sc)n;coutcalling test(sc)n;test(sc);test(sc);coutend!n;coutend!n; 輸出:輸出:first:first:construct in Baseconstruct in Basesecondsecondconstruct in Baseconstruct in Baseconstruct in construct in subclasssubclass
34、calling test(bc)calling test(bc)destructing basedestructing basecalling test(sc)calling test(sc)destructing basedestructing baseend!end!例:例:#include#includeclass Baseclass Basepublic:public: Base()coutconstruct in Base()coutconstruct in Basen;Basen;virctual Base()virctual Base()cout destruting Base
35、endl;cout destruting Base endl;class Subclass:public Baseclass Subclass:public Basepublic:public:Subclass()Subclass()coutconstruct in Subclassn;coutconstruct in Subclassn;Subclass()Subclass()cout destruting cout destruting subclassendl;subclassendl;void test(Basevoid test(Base* * x) x) delete x; del
36、ete x; void main()void main()coutfirst:n;coutfirst:n; Base Base * *bc=new Base ;bc=new Base ; coutsecondn; coutsecondn; Subclass Subclass * * sc=new Subclass; sc=new Subclass; coutcalling test(bc)n; coutcalling test(bc)n;test(bc);test(bc);coutcalling test(sc)n;coutcalling test(sc)n;test(sc);test(sc);coutend!n;coutend!n; 輸出:輸出: first:first: construct in construct in BaseBase second second construct in construct in BaseBaseconstruct in construct in subclasssubclasscalling test(bc)calling test(bc)destructing basedestructing basecalling test(sc)calling test(sc)destructing subclassdestruct
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 戶外游戲在學(xué)前兒童認(rèn)知能力培養(yǎng)中的應(yīng)用
- 山東青年政治學(xué)院《采礦工程概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024長跑比賽獎杯設(shè)計與制作服務(wù)協(xié)議版
- 南昌大學(xué)《數(shù)據(jù)庫原理與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 探索辦公新紀(jì)元駕馭學(xué)術(shù)之舟
- 二零二五年度酒店會議場地租賃合同含會議現(xiàn)場安全保衛(wèi)及應(yīng)急預(yù)案3篇
- 小學(xué)藝術(shù)教育質(zhì)量監(jiān)測與提升方案
- 2025年度肉類食材冷鏈物流與倉儲一體化服務(wù)合同3篇
- 二零二五年度離婚協(xié)議書與房產(chǎn)分割協(xié)議3篇
- 吉利學(xué)院《實(shí)驗(yàn)動畫》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年中考英語閱讀理解表格型解題技巧講解(含練習(xí)題及答案)
- 住宅設(shè)計效果圖協(xié)議書
- 新版中國食物成分表
- 浙江省溫州市溫州中學(xué)2025屆數(shù)學(xué)高二上期末綜合測試試題含解析
- 2024河南鄭州市金水區(qū)事業(yè)單位招聘45人歷年高頻難、易錯點(diǎn)500題模擬試題附帶答案詳解
- 食物損失和浪費(fèi)控制程序
- 完整版:美制螺紋尺寸對照表(牙數(shù)、牙高、螺距、小徑、中徑外徑、鉆孔)
- 2024年黑龍江齊齊哈爾中考英語試題及答案1
- TCI 373-2024 中老年人免散瞳眼底疾病篩查規(guī)范
- 2024四川太陽能輻射量數(shù)據(jù)
- 西南師大版五年級上冊小數(shù)乘除法豎式計算題200道及答案
評論
0/150
提交評論