面向对象编程技术与方法-例程代码.docx
赵清杰,面向对象编程技术与方法,电子工业出版社第1章例程代码例1-1.计算圆面积的面向过程程序:/Wl-I.计算典面积的面向过程程序/5&据摘逑:半径和面枳均为实暨ISiK数据处理;Q)从键式构入半径r2)计獴面积Fr2»2)向屏IJ输出半位和面松/e×l-l.cinclude<iostream>包含标准头文件Iostreamusingnaj>sacestd;声明可以直接使川s匕d中的标识符-ir11>为探序执行的人口intmain()(doubler-0.0;定义半径J初Ifi赋为。.。doublearea三0.0;定义网枳nrea初tfi赋为。.0ut«"Pleaseinputradius:"<<endl;/WW1fiill-Pleaseinputradius:"cin»r;从键盘输入一个教假,井M筠rarea=3.14*r*r;计I?网的面枳cot«-area=H«orea«endl;/向价再蜡出面超!,end】表示投行return0;若主沿数没孙必大提供返回语句,则标准C”默认返回O例上2.计算圆面积的面向对象程序./*A*A*A*A,*.«*A*.A*A.«A*»A.«A«例1-2,计算HIBl枳的闻向对象程序/e×l-2.cppinclude<iostream>包含怵准头文件iostmamusingnamespacestd;2明可以宜接使用3td中的标识符C1.Xle类的声明classCirclepublic:/以下为CirCle类的成员函数Clrcleldoubler-0);doubleGetArea();voidOutputArea<);private:构造函数用于初始化radius计算阅的面枳输出阅的面积到屏格/以下为CirUle类的数据成员doublerodis;/Circlg类的实现Circle:三Circl<doblr>(radius=r;IdoubleCircle:GetAreaOIreturn(3.14*radiusradius);JvoidCircle:!OutputArea()Icout«GetArea()«endl;(:1.rcle类的使用intmain()Circlecircle(3);创建半径为3的CirCIW类对象CItCIeClrcleeOutputArea();输HlBI的面枳returnO;赵洁杰,面向对象娘程技术与方法,电子工业出版社第2章例程代码«2-1字符与Asal与值。/W2-1,字符与ASCll码值/×2-1.cpp4include<ostream>usingnamespace三td;Intmain<)(charch-A;定义Chars!变MCh初始化为字符inta。ch;定义Int型变fit初始化为小,的玛祖.叩65Cout«"ch-"<<ch«end1;cot«a=m«a«Gnd1;returnO;i例2-2利用运算符SIZeOf得到不同散据类型占用的字节数.例22,利用运算符SUeof得到不同致据类型占用的字节数/e×2-2.cpp/*,*,*,*文*,*/*,*文*,4include<iostream>usingnamespacestd;intmain<)(doubled-0.5;cout«-sizeof<bool):''«sizeof<bool)«endl;cout«slzeof<car):,«8izeof<car)«endl;cot«slzeor<int:w<<8l2eof<int>«endl;cout«"sizeof<float>:m<<sizeof(float)<<endl;cout«sizeofd):w«sizeof(d)<<endl;cout«"sizeof<longdouble):"<<Sizeot(longdouble«endl;returnO;例23.文字输出。*A*A*A*A*A*A*/W2-3,文字输出/ex2-3.cppinclude<iostream>usingnamespacestd;IntmainO(/下面输出文字到屏幕上中间用朝我符分开cout«1.OO«,t,«3.14«,f«,a,«,t,«wbookw«endl;COUt«a;的出声响竹return0;例24标识符的作用域.例2-4.标识符的作用域/e×2-4.cpp/*.A*A*»*,A*,*A*A.*,A,*A.*A«include<iostream>usingnamespacestd;Inta=5;定义全局对象打intmain()Inta=2;定义局部射象Hintclea*3;/cl«6.使M的是局部前象口-2-::a3;Zc2-15,使用的是全局对象aCOUt«"cl-r«cl«endl;cout«hc2="«c2«endl;)同部对的作用域结束return0;>全局对做3的作用域结束例2-5.全局对象举例。/W2-5,全局对象举例/ex2-51.c该文件为应的EI标码与x2-5,2对应的目标以进行连接从该文件生成可执行文件9''.'.9*include<iostrem>usingnamespacestd;以下为全局对象定义及函数小明Intglobe-0;void(unO;/it立钠对象globe消Jft出明,潜数tun>在文件ex2-S_2.cpp中定义voidfunc<I;以下为主论效函数声明.Sttfnc(住主函数后而定义intmain)(Cunc(>/谢川函数func()globe-12;cot«globfun();改变全岫对象的值«endl;调用的敷fun(>tScglobe的的cot«globereturn0;«endl;/"unc<函数定义voidfnc<lcout«globe«endl;)/«2-5.全局对象器例Z/ex2-5_2.cpp/不要从i文件生成可执行文件externintglobe;声明对象globe为OXSrrU该对象在文件ux2-S_1.uPP中定义voidfun<)/un()函数定义(globe-47;/,悔改全功对象globe的假例26.只在编译单元内起作用的对象。/*A«*.*«*A*A*.*A例2-6.只在编洋单元内起作用的对&/×2-6-l.cpp射做f1只在本文件可用/,谖文件目标码与ex2-6_2.cpp的目标码进行逐按时,ftiKffl°.,.°!include<iostream>usingnamespacestd;以F为全局对象定义及潜t也明staticintfs-0;定义龄态对象voidfunc</rtifncifcex2-6-2.cpp,I,½A以下为主诲数intmain()(f三-1;returnO;,*A*A”AA.*.A例2-6.编评通元内起作用的对象/ex2-6-2.cpp该文件向评时可以通过,但it按时会出婚externintfs;/JiMijexternlflVJ.但此文件中仍不能MfsvoidCunc<)(/ts-100;错误!此处不可用f8它只能在文件ex2-6_l,cpp中使用例27函数内部定义的静态对盆。/«2-7.函数内部定义的静态对象/e×2-7.cpp“*.,.d.,.include<iostream>usingnamespacestd;/fun()函数定义void£un)(staticint1-3;在fs()函数内定义静态对象£1 三i÷1;cout«i;主的故intmainOCun();/cot<<1;此处不可以使用1COUt«,fun();returnO;例2-8内存分配方式举例。/*-*,*/*,文,*文*,*文*,/W2-8,内存分配方式举例/e×2-.cppinclude<iostream>u£ingnamespacestd;全局对象与函数定义intdgl»0;staticintdog2-0;voidf<>定义全后对歙定义的信全局对象定义也教staticintcatlintcat2-0;COUt«icatl:cot«cat2:-0;定义静态向SJ对奴定义同部对欤-«4catl<<endl;输出对较CatI的地址"«<cat2«end"/输出射象皿2的地址(inttp三newint<5);用new建立初Jfi为5的int对象.P中存放该对象的地址int1-0;定义局部对较staticintj-0;定义龄态局部对象cot«Fdoql:"«Sdogl«endl;输出射象doglW1.COUt«-4dog2:"«4dog2<<cndl;输出财软dog2的研COUt«-&£():“c<f«endl;/输出函数£()的地址¢0;/iWHIftcot«÷(p>:"«p«endl;/输出动态对象的堆址COUt«-4p:m«fip<<endl;输出P的抱址COUt«-&i:-«61«endl;输出对象i的地址COUt<<"4j:h«iJ«endl;输出对象j的地址cot«"(mainO:'«main«endl;悔出函数main的地址deleteF);存放P所指向的内存区域intmain()returnO;例2-9.联合数据类型举例。/W2-9.联合数据关里举例/Ze×2-9.Cpp°.''.'.s<include<iostream>usingnamespacestd;定义UrdOnX联合数据类型unionUnlonXinta;整型成员doubleb;/双精收浮点里成员H注总分号不能少!/ffiftIntmain<)UnionXA;建立UnionX类41的对象AA.a-5;为对象a的成外a照值5.为成ii问运算符A.b-7.6;/为对象A的成员匕味值7.6cout«Sizeof(A.a)«""«A.a«endl;辑出成员a的字节数及他出cout«Sizeof(A.b)«""«S