工程化程序設(shè)計(jì)(VC++.NET)第2章C++語(yǔ)言基礎(chǔ)_第1頁(yè)
工程化程序設(shè)計(jì)(VC++.NET)第2章C++語(yǔ)言基礎(chǔ)_第2頁(yè)
工程化程序設(shè)計(jì)(VC++.NET)第2章C++語(yǔ)言基礎(chǔ)_第3頁(yè)
工程化程序設(shè)計(jì)(VC++.NET)第2章C++語(yǔ)言基礎(chǔ)_第4頁(yè)
工程化程序設(shè)計(jì)(VC++.NET)第2章C++語(yǔ)言基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩74頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 國(guó)家信息化計(jì)算機(jī)教育認(rèn)證國(guó)家信息化計(jì)算機(jī)教育認(rèn)證 高等職業(yè)教育電子信息類專業(yè)高等職業(yè)教育電子信息類專業(yè) “雙證課程雙證課程”培養(yǎng)方案配套演示文稿培養(yǎng)方案配套演示文稿 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) endl; 案例分析案例分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) int someInt; int int 聲明聲明rIntrInt是對(duì)整數(shù)的引用,初始化為引用是對(duì)整數(shù)的引用,初始化為引用someIntsomeInt。在。在 此,要求此,要求someIntsomeInt已經(jīng)有聲明或定義,而引用僅僅是它的別已經(jīng)有聲明或定義,而引用僅僅是它的別 名。名。 引用的

2、概念引用的概念 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) int intOne=5; cout“intOne:”intOneendl; cout“rInt:”rIntendl; rInt=7; cout“intOne:”intOneendl; cout“rInt:”rIntendl; 程序的運(yùn)行結(jié)果如下:程序的運(yùn)行結(jié)果如下: intOne:5 rInt:5 intOne:7 rInt:7 引用的概念引用的概念 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) int intOne=5; cout“intOne:”intOneendl; cout“rInt:”rIntendl;

3、cout“ cout“ 程序的運(yùn)行結(jié)果如下:程序的運(yùn)行結(jié)果如下: intOne:5 rInt:5 void swap(int,int); void main() void main() int a=3,b=8; int a=3,b=8; cout“a=”a“,b=”bendl; cout“a=”a“,b=”bendl; swap(a,b); swap(a,b); cout“after swappingn”; cout“after swappingn”; cout“a=”a“,b=”bendl; cout“a=”a“,b=”bendl; void swap(int x,int y) void s

4、wap(int x,int y) int temp=x; / int temp=x; /交換兩個(gè)形參交換兩個(gè)形參 x=y;x=y; y=temp; y=temp; 程序的運(yùn)行結(jié)果如下:程序的運(yùn)行結(jié)果如下: a=3,b=8a=3,b=8 after swapping after swapping a=3,b=8 a=3,b=8 按值傳遞按值傳遞 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) ); void main() void main() int a=3,b=8; int a=3,b=8; cout“a=”a“,b=”bendl; cout“a=”a“,b=”bendl; swap(

5、 swap( cout“after swappingn”; cout“after swappingn”; cout“a=”a“,b=”bendl; cout“a=”a“,b=”bendl; void swap(int void swap(int * * x,int x,int * * y) y) int temp= int temp= * * x; / x; /交換兩個(gè)形參交換兩個(gè)形參 * * x= x= * * y; y; * * y=temp; y=temp; 運(yùn)行結(jié)果為:運(yùn)行結(jié)果為: a=3,b=8a=3,b=8 after after swappingswapping a=8,b=3

6、a=8,b=3 地址傳遞地址傳遞 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) void swap(int void main() void main() int x=5; int x=5; int y=6; int y=6; cout“before swap,x:”x“,y:”yendl; cout“before swap,x:”x“,y:”yendl; swap(x,y); swap(x,y); cout“after swap,x:”x“,y:”yendl; cout“after swap,x:”x“,y:”yendl; void swap(int int temp; temp=r

7、x; temp=rx; rx=ry; rx=ry; ry=temp; ry=temp; 運(yùn)行結(jié)果為:運(yùn)行結(jié)果為: before before swap,x:5,y:6swap,x:5,y:6 after after swap,x:6,y:5 swap,x:6,y:5 引用傳遞引用傳遞 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) p; p=new double; p=new double; 系統(tǒng)自動(dòng)根據(jù)系統(tǒng)自動(dòng)根據(jù)doubledouble類型的空間大小開辟一個(gè)內(nèi)存單元,并將地類型的空間大小開辟一個(gè)內(nèi)存單元,并將地 址放在指針址放在指針p p中。運(yùn)算符中。運(yùn)算符deletedelete操

8、作是釋放操作是釋放newnew請(qǐng)求到的內(nèi)存。例如:請(qǐng)求到的內(nèi)存。例如: delete p; delete p; 2.5 new與與delete 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) ; 定義類定義類 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) / double data_value; /聲明一個(gè)私有類型數(shù)據(jù)聲明一個(gè)私有類型數(shù)據(jù) public:public: void set_value(double); / void set_value(double); /聲明一個(gè)公有類型的成員函數(shù)聲明一個(gè)公有類型的成員函數(shù) double get_value(void); /doub

9、le get_value(void); /聲明一個(gè)公有類型的成員函數(shù)聲明一個(gè)公有類型的成員函數(shù) int get_num(void); /int get_num(void); /聲明一個(gè)公有類型的成員函數(shù)聲明一個(gè)公有類型的成員函數(shù) sam; /sam; /聲明類對(duì)象聲明類對(duì)象samsam 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) data_value=v; double counter:get_value(void) /double counter:get_value(void) /成員函數(shù)的定義成員函數(shù)的定義 double dd;double dd; dd=sin

10、(10.0dd=sin(10.0* *data_value);data_value); return(dd);return(dd); int counter:get_num(void) /int counter:get_num(void) /成員函數(shù)的定義成員函數(shù)的定義 int ii;int ii; ii=int(data_value);ii=int(data_value); return(ii);return(ii); main()main() sam.set_value(50.0); sam.set_value(50.0); / /設(shè)置初值設(shè)置初值 coutThe value is“ co

11、utThe value is“ sam.get_value()endl;sam.get_value()endl; coutThe num is“ coutThe num is“ sam.get_num()endl;sam.get_num()endl; return(0); return(0); 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) int i; public: public: float f;float f; void fun( );void fun( ); ; example A; /example A; /聲明類對(duì)象聲明類對(duì)象A A 定義對(duì)象定義對(duì)象 中國(guó)

12、高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) A.fun(); 2 2)在本例中,對(duì)象)在本例中,對(duì)象A A所能使用的數(shù)據(jù)和函數(shù)只有變量所能使用的數(shù)據(jù)和函數(shù)只有變量f f和和 成員函數(shù)成員函數(shù)funfun。變量變量i i為類為類exampleexample的私有數(shù)據(jù),不能的私有數(shù)據(jù),不能 通過(guò)通過(guò)A.iA.i使用,如何訪問(wèn)使用,如何訪問(wèn)i i,請(qǐng)思考。,請(qǐng)思考。 定義對(duì)象定義對(duì)象 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) ”return;”。因?yàn)闃?gòu)造函數(shù)專門用于創(chuàng)建對(duì)象和為。因?yàn)闃?gòu)造函數(shù)專門用于創(chuàng)建對(duì)象和為 其初始化,所以它不能隨意被調(diào)用。其初始化,所以它不能隨意被調(diào)用。 3

13、3)如果一個(gè)類對(duì)象是另一個(gè)類的數(shù)據(jù)成員,則在那個(gè)類的對(duì)象)如果一個(gè)類對(duì)象是另一個(gè)類的數(shù)據(jù)成員,則在那個(gè)類的對(duì)象 創(chuàng)建所調(diào)用的構(gòu)造函數(shù)中,對(duì)該成員創(chuàng)建所調(diào)用的構(gòu)造函數(shù)中,對(duì)該成員( (對(duì)象對(duì)象) )自動(dòng)調(diào)用其構(gòu)造函數(shù)。自動(dòng)調(diào)用其構(gòu)造函數(shù)。 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) cout“constructing student.n”; someHours=100; someHours=100; gpa=3.5; gpa=3.5; / /* *Student()Student() cout“destructing student.n”; cout“destructing stude

14、nt.n”; * */ / protected: protected: int someHours; int someHours; float gpa; float gpa; ; ; 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) /*Teacher( ) cout“destructing teacher.n”; */ ; class TutorPair public: TutorPair( ) cout“construcing tutorpair.n”; noMettings=0; /* TutorPair( ) cout“destructing tutorpair.

15、n”; */ protected: Student student; Teacher teacher; int noMettings; /會(huì)晤次數(shù)會(huì)晤次數(shù) ; 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) cout“back in main.n”; 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下: constructing student. constructing teacher. constructing tutorpair. back in main. /*destructing tutorpair. destructing teacher. destructing stu

16、dent.*/ 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) int mile,yard; public: public: Distance(); / Distance(); /聲明構(gòu)造函數(shù)聲明構(gòu)造函數(shù) Distance(int,int); /Distance(int,int); /聲明重載的構(gòu)造函數(shù)聲明重載的構(gòu)造函數(shù) void get_value( ); /void get_value( ); /聲明成員函數(shù)聲明成員函數(shù) Distance add_value(Distance); /Distance add_value(Distance); /聲明成員函數(shù)聲明成員函

17、數(shù)add_valueadd_value / /參數(shù)為參數(shù)為DistanceDistance類的對(duì)象,返回值也是類的對(duì)象,返回值也是DistanceDistance類的對(duì)象類的對(duì)象 void display( ); /void display( ); /聲明成員函數(shù)聲明成員函數(shù) ; 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) mile=0; yard=0; yard=0; Distance:Distance(int v1,int v2) / Distance:Distance(int v1,int v2) /定義重載的構(gòu)造函數(shù)體定義重載的構(gòu)造函數(shù)體 mile=v1;

18、mile=v1; yard=v2; yard=v2; void Distance:get_value( ) /void Distance:get_value( ) /定義成員函數(shù)體定義成員函數(shù)體 cout“Enter mile:”; coutmile; cinmile; cout“Enter yard:”; coutyard; cinyard; 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) Distance B; B.yard=yard+A.yard; B.yard=yard+A.yard; B.mile=0; B.mile=0; if(B.yard=1760) if

19、(B.yard=1760) B.mile=1; B.mile=1; B.yard=-1760; B.yard=-1760; B.mile+=mile+A.mile; B.mile+=mile+A.mile; return B;return B; void Distance:display( ) /void Distance:display( ) /定義成員函數(shù)體定義成員函數(shù)體 coutmile“miles”yard“yards”endl; coutmile“miles”yard“yards”endl; 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) / Distance

20、 D(10,100); /定義對(duì)象定義對(duì)象D D,并傳入初值,并傳入初值 Distance F,G; /Distance F,G; /定義對(duì)象定義對(duì)象F F和和G G F.get_value( ); F.get_value( ); G=D.add_value(F); /G=D+F G=D.add_value(F); /G=D+F cout“The first distance:”; cout“The first distance:”; D.display( ); D.display( ); cout“The second distance:”; cout“The second distance

21、:”; F.display( ); F.display( ); cout“The third distance:”; cout“The third distance:”; G.display( ); G.display( ); 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) int a,b,c; public:public: static int s; / static int s; /說(shuō)明靜態(tài)數(shù)據(jù)成員說(shuō)明靜態(tài)數(shù)據(jù)成員 static void fun(); /static void fun(); /靜態(tài)成員函數(shù)靜態(tài)成員函數(shù) ; int A:s=0; /int A:s=0

22、; /靜態(tài)數(shù)據(jù)成員在類外聲明,并初始化靜態(tài)數(shù)據(jù)成員在類外聲明,并初始化 靜態(tài)數(shù)據(jù)成員和成員函數(shù)靜態(tài)數(shù)據(jù)成員和成員函數(shù) 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) static int count; public:public: objcount()objcount() count+;count+; int get()int get() return count;return count; 程序的運(yùn)行結(jié)果如下: 3 4 void main()void main() objcount a1,a2,a3;objcount a1,a2,a3; couta1.get()endl;couta1.

23、get()endl; objcount a4;objcount a4; couta3.getendl;couta3.getendl; 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) A=a; B+=a; B+=a; static void f1(person m);static void f1(person m); private:private: int A; int A; static int B; static int B; ; void person:f1(person m)void person:f1(person m) coutA=m.Aendl; coutA=m.Aendl

24、; coutB=Bendl; coutB=Bendl; int person:B=0;int person:B=0; void main()void main() person p(10),Q(20); person p(10),Q(20); person:f1(p); person:f1(p); person:f1(Q); person:f1(Q); 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) type vars; . . public: public: friend friend 函數(shù)類型函數(shù)類型 函數(shù)名稱函數(shù)名稱(); /(); /友元函數(shù)友元函數(shù) . ; ; 中國(guó)高等職業(yè)技術(shù)

25、教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) m_x=m_y=0; CPoint(unsigned x,unsigned y) CPoint(unsigned x,unsigned y) m_x=x;m_x=x; m_y=y;m_y=y; void Print( ) void Print( ) coutPoint(m_x,m_y)endl;coutPoint(m_x,m_y)endl; friend CPoint Inflate(CPoint / friend CPoint Inflate(CPoint /聲明一個(gè)友元函數(shù)聲明一個(gè)友元函數(shù) private:private: unsigned m_x,m

26、_y; unsigned m_x,m_y; ; 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) ptTemp.m_x+=nOffset; ptTemp.m_y+=nOffset; return ptTemp; void main() CPoint pt(10,20); pt.Print(); pt=Inflate(pt,3); pt.Print(); 例題分析例題分析 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) int i; protected: protected: int x; int x; public: public: Parent(); Parent(); void

27、change(); void change(); void display(); void display(); ; Parent:Parent()Parent:Parent() x=0; x=0; i=0; i=0; void Parent:change()void Parent:change() x+; x+; i+; i+; void Parent:display()void Parent:display() cout“x=“xendl; cout“x=“xendl; class Son:public Parentclass Son:public Parent public: publi

28、c: void modify(); void modify(); ; void Son:modify()void Son:modify() x+; x+; 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) int intOne; int int intOne=5; intOne=5; cout“intOne:”intOneendl; cout“intOne:”intOneendl; cout“rInt:”rIntendl; cout“rInt:”rIntendl; cout“dl; cout“ cout“ int intTwo=8; int intTwo=8; rInt=intTwo; r

29、Int=intTwo; cout“intOne:”intOneendl; cout“intOne:”intOneendl; cout“intTwo:”intTwoendl;cout“intTwo:”intTwoendl; cout“rInt:”rIntendl; cout“rInt:”rIntendl; cout“ l; cout“ l; cout“cout“ 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育研究會(huì) & CEAC信息化培訓(xùn)認(rèn)證管理辦公室信息化培訓(xùn)認(rèn)證管理辦公室 . 4. 4.類的封裝性是類的封裝性是_。 A. A. 類的私有成員不能被外面的函數(shù)直接訪問(wèn)類的私有成員不能被外面的函數(shù)直接訪問(wèn) B. B. 類的公有成員不能被外面的函數(shù)直接訪問(wèn)類的公有成員不能被外面的函數(shù)直接訪問(wèn) C. C. 類的保護(hù)成員不能被外面的函數(shù)直接訪問(wèn)類的保護(hù)成員不能被外面的函數(shù)直接訪問(wèn) 5.5.下列說(shuō)法正確的是下列說(shuō)法正確的是_。 A. A. 類的構(gòu)造函數(shù)創(chuàng)建類對(duì)象,分配空間類的構(gòu)造函數(shù)創(chuàng)建類對(duì)象,分配空間 B. B. 類的構(gòu)造函數(shù)可以有返回類型類的構(gòu)造函數(shù)可以有返回類型 C. C. 類的構(gòu)造函數(shù)可以重載。類的構(gòu)造函數(shù)可以重載。 D. D. 類的構(gòu)造函數(shù)可以在類外部定義類的構(gòu)造函數(shù)可以在類外部定義 作業(yè)及練習(xí)作業(yè)及練習(xí) 中國(guó)高等職業(yè)技術(shù)教育研究會(huì)中國(guó)高等職業(yè)技術(shù)教育

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論