




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Chap3 C+ 的類(lèi)李春花QQ: 471767100武漢光電國(guó)家實(shí)驗(yàn)室B405類(lèi)和對(duì)象對(duì)象(object)表示現(xiàn)實(shí)世界中可以明確識(shí)別的實(shí)體。例如,學(xué)生、圓、按鈕等。對(duì)象具有狀態(tài)和行為。類(lèi)(class)定義了同一類(lèi)對(duì)象共有的屬性和方法。類(lèi)是對(duì)象的模板、藍(lán)圖。對(duì)象是類(lèi)的實(shí)例。狀態(tài)(變量)行為(方法)姓名:張三學(xué)號(hào):0001身高:1.73學(xué)習(xí)工作娛樂(lè)class Circle private: double radius ; public: Circle() ; Circle(double r); double findArea() ;;#include “Circle.h”Circle:Circl
2、e() radius = 1.0;Circle:Circle(double r) radius = r;double Circle:findArea() return radius * radius * 3.14;示例-圓類(lèi)數(shù)據(jù)成員函數(shù)成員聲明構(gòu)造函數(shù)聲明Circle c1;radius=1.0;Circle c2(3.0);radius=3.0;Circle c3(15.0);radius=15.0;構(gòu)造函數(shù)定義函數(shù)成員定義Circle.hCircle.cppmain.cpp#include “Circle.h”void main() Circle c1, c2(3.0); coutc1.f
3、indArea(); cout 0.0 ) radius = r; else radius = 1.0; Circle c1; /用戶(hù)沒(méi)指定參數(shù),調(diào)用缺省構(gòu)造函數(shù) Circle c2( 5.0 ); /調(diào)用帶參數(shù)構(gòu)造函數(shù),實(shí)參5.0傳給形參r,將對(duì)象c2的 / 半徑設(shè)為5.0 cout c1.radiuse; /1.0 cout c2.radiuse; /5.0類(lèi)的聲明及定義類(lèi)的聲明:由保留字class、struct或union加上類(lèi)的名稱(chēng)構(gòu)成。類(lèi)的定義:包括類(lèi)名的聲明部分和類(lèi)由 括起來(lái)的主體兩部分構(gòu)成。類(lèi)的實(shí)現(xiàn):通常指類(lèi)的函數(shù)成員的實(shí)現(xiàn),即定義類(lèi)的函數(shù)成員。class 類(lèi)型名; /前向聲明c
4、lass 類(lèi)型名 /類(lèi)的定義private: 私有成員聲明或定義; protected: 保護(hù)成員聲明或定義; public: 公有成員聲明或定義; ; 類(lèi)保留字:class、struct或union可用來(lái)聲明和定義類(lèi)。訪(fǎng)問(wèn)權(quán)限封裝機(jī)制定義數(shù)據(jù)成員、函數(shù)成員和類(lèi)型成員的訪(fǎng)問(wèn)權(quán)限, 提供對(duì)外訪(fǎng)問(wèn)接口訪(fǎng)問(wèn)內(nèi)部私有或保護(hù)數(shù)據(jù)。包括三類(lèi):private:私有成員可被本類(lèi)的函數(shù)成員訪(fǎng)問(wèn),不能被派生類(lèi)函數(shù)成員、其它類(lèi)的函數(shù)成員和普通函數(shù)訪(fǎng)問(wèn)。protected:受保護(hù)成員可被本類(lèi)和派生類(lèi)的函數(shù)成員訪(fǎng)問(wèn),不能被其它類(lèi)函數(shù)成員和普通函數(shù)訪(fǎng)問(wèn)。public:公有成員可被任何函數(shù)成員和普通函數(shù)訪(fǎng)問(wèn)。注意:類(lèi)的友元
5、不是當(dāng)前類(lèi)的成員,可以在private、protected和public等任意位置說(shuō)明,友元可以像類(lèi)自己的函數(shù)成員一樣訪(fǎng)問(wèn)類(lèi)的所有成員。進(jìn)入class定義的類(lèi)時(shí),缺省訪(fǎng)問(wèn)權(quán)限為private;進(jìn)入struct和union定義的類(lèi)時(shí),缺省訪(fǎng)問(wèn)權(quán)限為public。7class FEMALE /缺省訪(fǎng)問(wèn)權(quán)限為privateint age; /私有的, 本類(lèi)函數(shù)成員和友員可訪(fǎng)問(wèn)public:/訪(fǎng)問(wèn)權(quán)限改為publictypedef char *NAME; /公有的, 都能訪(fǎng)問(wèn)protected: /訪(fǎng)問(wèn)權(quán)限改為protectedNAME nickname; /本類(lèi)和派生類(lèi)函數(shù)成員、友員可訪(fǎng)問(wèn)NAME
6、getnickname ( ) return nickname; ; /自動(dòng)內(nèi)聯(lián)public:/訪(fǎng)問(wèn)權(quán)限改為publicNAME name; /公有的, 都能訪(fǎng)問(wèn) w; void main (void) FEMALE :NAME n=; /任何函數(shù)都能訪(fǎng)問(wèn)公有name n=w.nickname; /錯(cuò)誤,main不得訪(fǎng)問(wèn)保護(hù)成員 n=w.getnickname ( ) ; /錯(cuò)誤, main不得調(diào)用保護(hù)成員 int d=w.age; /錯(cuò)誤, main不得訪(fǎng)問(wèn)私有age【例3-4】定義FEMALE類(lèi) 訪(fǎng)問(wèn)權(quán)限用法使用private、protected和public保留字標(biāo)識(shí)每一區(qū)間
7、的訪(fǎng)問(wèn)權(quán)限,同一保留字可以多次出現(xiàn); 同一區(qū)間內(nèi)可以有數(shù)據(jù)成員、函數(shù)成員和類(lèi)型成員,習(xí)慣上按類(lèi)型成員、數(shù)據(jù)成員和函數(shù)成員分開(kāi); 成員可以任意順序出現(xiàn)在類(lèi)定義中,函數(shù)成員的實(shí)現(xiàn)既可放在類(lèi)體外面;也可內(nèi)嵌在類(lèi)體定義中,此時(shí)會(huì)自動(dòng)成為內(nèi)聯(lián)函數(shù); 若函數(shù)成員在類(lèi)的定義體外實(shí)現(xiàn),則須在函數(shù)返回類(lèi)型和函數(shù)名之間,使用類(lèi)名和作用域運(yùn)算符“:”指明該函數(shù)成員所屬的類(lèi); 聲明類(lèi)時(shí)不允許初始化數(shù)據(jù)成員,應(yīng)由構(gòu)造函數(shù)完成; 類(lèi)的定義體花括號(hào)后要有“;”作為類(lèi)體結(jié)束標(biāo)志。9class COMP double r, v; public:COMP (double rp, double vp) r=rp; v=vp; /自
8、動(dòng)內(nèi)聯(lián)inline double getr ( ); /inline保留字可以省略, 后面有定義double getv ( ) ; ; inline double COMP:getv ( ) return v; /定義內(nèi)聯(lián)void main (void) COMP c(3, 4) ; double r=c.getr ( ) ; /此時(shí)getr的函數(shù)體未定義, 內(nèi)聯(lián)失敗double v=c.getv ( ) ; /函數(shù)定義在調(diào)用之前, 內(nèi)聯(lián)成功inline double COMP:getr ( ) return r; /定義內(nèi)聯(lián)【例3-7】定義一個(gè)復(fù)數(shù)類(lèi) 內(nèi)聯(lián)函數(shù)必須在使用前進(jìn)行定義10#inc
9、lude #include #include struct STRING char *s; STRING (char *) ; STRING ( ) ; ; STRING:STRING (char *t) s= (char *) malloc (strlen (t) +1); strcpy (s, t) ; coutConstruct: s; STRING:STRING ( ) /防止反復(fù)釋放內(nèi)存 if (s=0) return; coutDeconstruct: s; free (s) ; s=0; /提倡0代替null指針void main (void) STRING s1 (String
10、 1n) ; STRING s2 (String 2n) ; STRING (“Constantn”); /常量對(duì)象 cout RETURNn; /自動(dòng)析夠構(gòu)s2, s1Construct: String 1Construct: String 2Construct: ConstantDeconstruct: ConstantRETURNDeconstruct: String2Deconstruct: String1構(gòu)造析構(gòu)順序3.4new和delete內(nèi)存管理函數(shù)和new、delete的區(qū)別:內(nèi)存分配:malloc為函數(shù),實(shí)參用值表達(dá)式,分配后內(nèi)存初始化為0;new為運(yùn)算符,操作數(shù)用類(lèi)型表達(dá)式
11、,先在底層調(diào)用malloc,然后調(diào)用構(gòu)造函數(shù); 內(nèi)存釋放:free為函數(shù),實(shí)參用指針類(lèi)型值表達(dá)式,直接釋放內(nèi)存;delete為運(yùn)算符,操作數(shù)為指針類(lèi)型值表達(dá)式,先調(diào)用析構(gòu)函數(shù),然后底層調(diào)用free。如為簡(jiǎn)單類(lèi)型 (沒(méi)有構(gòu)造、析構(gòu)函數(shù)) 指針?lè)峙浜歪尫艃?nèi)存,則new和malloc、delete和free沒(méi)有區(qū)別,可混合使用,如new分配的內(nèi)存可用free釋放。12new 類(lèi)型表達(dá)式:int *p=new int; /等價(jià)int *p=new int (0) ; 數(shù)組形式僅第一維下標(biāo)可為任意表達(dá)式,其它維為常量表達(dá)式:int (*q) 68=new intx+2068; 【例3-13】為對(duì)象數(shù)組分
12、配內(nèi)存時(shí),必須調(diào)用參數(shù)表無(wú)參構(gòu)造函數(shù)。delete 指針指向非數(shù)組的單個(gè)實(shí)體使用delete p, 如p指向?qū)ο?,則先調(diào)用析構(gòu)函數(shù),再釋放對(duì)象所占的內(nèi)存。delete 指針指向任意維的數(shù)組時(shí)使用delete p; 否則內(nèi)存泄露如p指向?qū)ο髷?shù)組,則對(duì)所有對(duì)象 (元素) 先調(diào)用析構(gòu)函數(shù)。然后釋放對(duì)象數(shù)組占有的內(nèi)存。13#include #include class ARRAY /class體的缺省訪(fǎng)問(wèn)權(quán)限為privateint*a, r, c; public: /訪(fǎng)問(wèn)權(quán)限改為publicARRAY (int x, int y) / int型可用malloc r=x ; c=y ; a=new in
13、t r *c ; ARRAY ( ) if (a) delete a; a=0; /可用free(a); 也可用delete a; void main (void) ARRAY y (3, 5) , *p; p=new ARRAY(5, 7); delete p; /main返回前析構(gòu)y/不能用malloc, ARRAY需要調(diào)構(gòu)造函數(shù)/不能用free, 否則p未調(diào)用析構(gòu)函數(shù)14兩種內(nèi)存管理方式的區(qū)別ar=0c=0r. c =35個(gè)整型元素p(a) p = new Array(5,7)Step 1: 為對(duì)象分配內(nèi)存p=(Array *)malloc(sizeof(Array)Step 2: 調(diào)用
14、構(gòu)造函數(shù)a=new int r * c(b) p = (Array *)malloc(sizeof(ARRAY)a=nullr=0c=0pr=5c=715ar=5c=7r.C =35個(gè)整型元素p(d) delete pStep 2: 釋放Array對(duì)象內(nèi)存free(p)Step 1: 先調(diào)析構(gòu)函數(shù)delete a,釋放a指向的內(nèi)存(b) free(p)ar=5c=7r.C =35個(gè)整型元素p直接釋放Array對(duì)象內(nèi)存,沒(méi)有調(diào)析構(gòu)函數(shù),導(dǎo)致a指向的35個(gè)整型元素所占內(nèi)存沒(méi)釋放兩種內(nèi)存管理方式的區(qū)別16new還可對(duì)已經(jīng)析構(gòu)的變量重新構(gòu)造,從而減少變量的說(shuō)明個(gè)數(shù),提高內(nèi)存的使用效率。(需高版本C+編
15、譯器支持,通常要包含iostream.h) STRING x (Hello!) , *p=&x; x. STRING ( ) ; /析構(gòu)對(duì)象,但對(duì)象所占內(nèi)存沒(méi)釋放new (&x) STRING (The World) ; new (p) STRING (The World) ; 這種用法可以節(jié)省內(nèi)存或棧的空間。173.5隱含參數(shù)thisthis指針是一個(gè)隱含的const指針,不能移動(dòng)或?qū)υ撝羔樫x值(即該指針是const的)。它是普通函數(shù)成員的第一個(gè)參數(shù),指向要調(diào)用該函數(shù)成員的對(duì)象。*this代表當(dāng)前被指向的對(duì)象。當(dāng)通過(guò)對(duì)象調(diào)用函數(shù)成員時(shí),對(duì)象的地址作為函數(shù)的第一個(gè)實(shí)參首先壓棧,通過(guò)這種方式將對(duì)
16、象地址傳遞給隱含參數(shù)this。構(gòu)造函數(shù)和析構(gòu)函數(shù)的this參數(shù)類(lèi)型固定。由于析構(gòu)函數(shù)的參數(shù)表必須為空,this參數(shù)又無(wú)類(lèi)型變化,故析構(gòu)函數(shù)不能重載。類(lèi)的靜態(tài)函數(shù)成員沒(méi)有隱含的this指針。18this指針class A int age;public: void setAge( int age) this-age = age;/this類(lèi)型:A*const this A a; a.setAge(30); /函數(shù)setAge通過(guò)對(duì)象a被調(diào)用時(shí),setAge函數(shù)的第一個(gè)參數(shù)是 / A*const this指針,指向調(diào)用對(duì)象a。 / this-age = a.age = 30a的地址傳給this19c
17、lass TREE int value; /保存節(jié)點(diǎn)值 TREE *left, *right; public: TREE(int) ; /TREE * const this TREE( ) ; /TREE * const this const TREE *find (int) const; / 這個(gè)const是修飾this指針,/const TREE * const this; TREE:TREE (int value) /隱含參數(shù)this指向要構(gòu)造的對(duì)象this-value=value; /等價(jià)于TREE:value=valueleft=right=0; /C+提倡空指針NULL用0表示co
18、nst TREE* TREE:find (int v)const /this指向調(diào)用對(duì)象if (v=value) return this; /this指向找到的節(jié)點(diǎn) if (vfind (v) : 0; /遞歸查左子樹(shù)return right!=0?right-find (v) :0; /遞歸查右子樹(shù) /查右子樹(shù), 調(diào)用時(shí)新this=right3.6對(duì)象初始化若存在以下因素, 必須自定義構(gòu)造函數(shù):類(lèi)若定義了只讀或引用類(lèi)型的非靜態(tài)(static)數(shù)據(jù)成員, 這些成員必須通過(guò)自定義構(gòu)造函數(shù)初始化; 若類(lèi)A包含類(lèi)B的非靜態(tài)對(duì)象成員,而類(lèi)B的構(gòu)造函數(shù)參數(shù)表都有參數(shù),則類(lèi)A必須自定義構(gòu)造函數(shù)(無(wú)論參數(shù)表
19、是否有參數(shù)):以便用實(shí)參初試化類(lèi)B的非靜態(tài)對(duì)象成員。注意:C+缺省的無(wú)參的A( ) 只會(huì)調(diào)用無(wú)參的B( ) 。若子類(lèi)的基類(lèi)只定義了參數(shù)表有參數(shù)的構(gòu)造函數(shù),這些基類(lèi)成員必須通過(guò)帶參數(shù)的構(gòu)造函數(shù)初始化; 那么子類(lèi)必須自定義構(gòu)造函數(shù)(無(wú)論參數(shù)表是否有參數(shù)) ,否則無(wú)法傳遞參數(shù)給父類(lèi)構(gòu)造函數(shù)初始化位置:在構(gòu)造函數(shù)的參數(shù)表之后、函數(shù)體之前, 所有的基類(lèi)和數(shù)據(jù)成員都應(yīng)在此初始化(稱(chēng)為成員初始化列表), 并且只能在該處初始化一次,在其函數(shù)體內(nèi)的賦值不應(yīng)視作初始化。21數(shù)據(jù)成員初始化方法:數(shù)據(jù)成員不能在定義時(shí)初始化,必須用構(gòu)造函數(shù)初始化; class A int i= 0; /錯(cuò),不能在定義時(shí)初始化 。 ;成
20、員按照在類(lèi)體內(nèi)定義的先后次序初始化,與出現(xiàn)在初始化列表的次序無(wú)關(guān); class A int i; int j; public: A( ):j(0),i(0) /還是先初始化 i, 后初始化 j。按定義順序初始化 i = 1; j = 1; /在函數(shù)體內(nèi)不應(yīng)看做初始化,而是賦值 ;22數(shù)據(jù)成員初始化方法:普通數(shù)據(jù)成員沒(méi)有出現(xiàn)在初始化列表位置時(shí),若所屬對(duì)象為全局、靜態(tài)或new的對(duì)象,將具有缺省值0; class A int i; public: A( ) ; A a; /a為全局對(duì)象, a.i = 023數(shù)據(jù)成員初始化方法:只讀、引用、對(duì)象成員只能出現(xiàn)在初始化列表中; 【例3-16】 struct
21、 B int i; B(int x):i(x) /B只定義了帶參數(shù)構(gòu)造函數(shù) ; class A /以下三種情況之一,必須自定義構(gòu)造函數(shù) const int i; /只讀 int j; int &ri; /引用 B b; /對(duì)象成員, /B只有帶參數(shù)的構(gòu)造函數(shù) public: A( ):i(0) , j(0), ri (j) , b(1) j=3; ;從這個(gè)例子可以看出:由于類(lèi) B只定義了帶參數(shù)的構(gòu)造函數(shù),為了初始化對(duì)象成員b,A必須自定義構(gòu)造函數(shù)。否則沒(méi)有機(jī)會(huì)傳遞參數(shù)給B的構(gòu)造函數(shù)。同樣的道理,如果A有基類(lèi),而且基類(lèi)只定義了帶參數(shù)的構(gòu)造函數(shù),我們必須定義A的構(gòu)造函數(shù)。24數(shù)據(jù)成員初始化方法:基
22、類(lèi)和非靜態(tài)對(duì)象成員沒(méi)有出現(xiàn)在初始化列表位置時(shí),此時(shí)必然調(diào)用其無(wú)參構(gòu)造函數(shù)對(duì)其初始化( 因?yàn)闊o(wú)法傳遞參數(shù)); 如果類(lèi)僅包含公有成員且沒(méi)有定義構(gòu)造函數(shù),則可以采用同C兼容的初始化方式,即:使用花括號(hào)初始化數(shù)據(jù)成員; 用new分配的對(duì)象數(shù)組必須調(diào)用無(wú)參構(gòu)造函數(shù)初始化。25struct A int a, b; w=1, 2; /全部為公有成員, 未定義構(gòu)造函數(shù)class B int c; public: B (int x) c=x; ; /c可以不出現(xiàn)在初始化列表里 /最好是B (int x) :c (x) class C const int d; /只讀 B e; /e為對(duì)象成員,類(lèi)B構(gòu)造函數(shù)參數(shù)表
23、有參數(shù), 類(lèi)C須定義構(gòu)造函數(shù)public: C ( ) :d (0), e (0) ; /無(wú)參構(gòu)造函數(shù) C (int x) :e (x), d (x) ; /重載構(gòu)造函數(shù)按定義順序d、e初始化 C (int x, int y) :d (x) , e (y) ; /只讀、引用、對(duì)象成員如d、e不能在 中賦值; void main (void) B b1 (8), b2=9, b3= (2, 3) ; C c16=3, (4, 5), C (6), C (7, 8), C ( ) ; C *qc=new C(3) , *rc=new C4; /對(duì)象數(shù)組為其元素調(diào)用C ( ) 共4次 delete
24、qc; delete rc; /對(duì)象數(shù)組用delete 析構(gòu)4次、釋放1次對(duì)象數(shù)組/等號(hào)右邊只能一個(gè)值, 等于B b1(8), b2(9) ,b3(3)/元素C(3) , C (5), C(6), C(7, 8), C( ),C( )26為構(gòu)造函數(shù)指定實(shí)參的方式為構(gòu)造函數(shù)指定實(shí)參有三種形式:class A; /假設(shè)A的構(gòu)造函數(shù)參數(shù)類(lèi)型為char *A a1(“obejct1 of A”);A a2 = A(“obejct1 of A”);A a3 = “obejct3 of A”; /只能被用于單個(gè)實(shí)參的情形假設(shè)class B有一個(gè)無(wú)參構(gòu)造函數(shù)B( ),我們可以寫(xiě)B(tài) b1;B b2 = B(
25、);B b3( ); /這樣對(duì)嗎?判斷一個(gè)類(lèi)是否需要自定義構(gòu)造函數(shù)一個(gè)準(zhǔn)則:是否需要傳遞參數(shù)如果有只讀成員,引用成員:必須在成員初始化列表里初始化,我們必須自定義構(gòu)造函數(shù),否則無(wú)法初始化這兩種成員如果有對(duì)象成員(注意不是對(duì)象指針):必須在成員初始化列表初始化。如果對(duì)象成員的初始化必須帶參數(shù),我們當(dāng)然必須自定義構(gòu)造函數(shù),否則我們是沒(méi)有機(jī)會(huì)傳遞參數(shù)的。(如果對(duì)象成員的初始化可以不帶參數(shù),那我們可以不自定義構(gòu)造函數(shù),因?yàn)槲覀儾恍枰獋鬟f參數(shù),系統(tǒng)會(huì)自動(dòng)地初始化)。如果基類(lèi)的構(gòu)造也必須傳遞參數(shù),道理同上,我們也必須自定義構(gòu)造函數(shù)。自定義的構(gòu)造函數(shù)是否必須帶參數(shù)?不是必須,因?yàn)槲覀儍H僅需要一個(gè)傳遞參數(shù)的機(jī)會(huì)。28什么叫無(wú)參構(gòu)造函數(shù)(缺省構(gòu)造函數(shù))無(wú)參(缺省構(gòu)造函數(shù))是指不需要用戶(hù)指定實(shí)參就能被調(diào)用的構(gòu)造函數(shù)。這并不意味著它不能接受實(shí)參。下面每一個(gè)都是無(wú)參(缺省)構(gòu)造函數(shù)。 A:A() A:(int i = 0) A:(int i = 0, int j = 0) 當(dāng)一個(gè)類(lèi)沒(méi)有定義構(gòu)造函數(shù)時(shí),編譯器會(huì)為你提供一個(gè)缺省構(gòu)造函數(shù)當(dāng)你自己定義了構(gòu)造函數(shù),編譯器不再為你提供缺省構(gòu)造函數(shù)因此,當(dāng)你自定義了一個(gè)帶參數(shù)的構(gòu)造函數(shù)時(shí),你最好再加上一個(gè)無(wú)參構(gòu)造函數(shù)。為什么?293.7類(lèi)的存儲(chǔ)空
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校外生物教育資源整合計(jì)劃
- 團(tuán)隊(duì)協(xié)作推動(dòng)變革的策略計(jì)劃
- 前臺(tái)服務(wù)中的問(wèn)題處理與反饋計(jì)劃
- 跨境金融政策對(duì)投資融資的影響分析
- 跨境B2B電商平臺(tái)運(yùn)營(yíng)策略探討
- 非公企業(yè)推動(dòng)非標(biāo)智能裝備發(fā)展的策略研究
- 科技公司如何應(yīng)對(duì)網(wǎng)絡(luò)安全法規(guī)挑戰(zhàn)
- 2025年大唐云南發(fā)電有限公司所屬企業(yè)高校畢業(yè)生招聘筆試參考題庫(kù)附帶答案詳解
- 跨國(guó)公司資本運(yùn)作的信息披露要求
- 小學(xué)數(shù)學(xué)教師心得苦干不如巧干-做一個(gè)會(huì)偷懶的教師讀后感
- 新版-GSP-:中藥材、中藥飲片知識(shí)培訓(xùn)試題及答案
- 裝修隱蔽工程驗(yàn)收記錄表范例
- 《實(shí)數(shù)》單元作業(yè)設(shè)計(jì)
- 攝影基礎(chǔ)知識(shí)教學(xué)課件-攝影師入門(mén)基礎(chǔ)知識(shí)
- 煙花爆竹基礎(chǔ)知識(shí)
- 路橋過(guò)渡段主要技術(shù)標(biāo)準(zhǔn)與結(jié)構(gòu)
- 互聯(lián)網(wǎng)公司勞動(dòng)合同
- 吉美版四年級(jí)綜合實(shí)踐活動(dòng)下冊(cè)全冊(cè)表格簡(jiǎn)約式教案教學(xué)設(shè)計(jì)
- 通信工程監(jiān)理實(shí)施細(xì)則
- 電力變壓器監(jiān)造規(guī)范(完整版)資料
- 精品課程:運(yùn)動(dòng)訓(xùn)練學(xué)(北京體育大學(xué))
評(píng)論
0/150
提交評(píng)論