面向对象技术练习.ppt

上传人:京东小超市 文档编号:6100295 上传时间:2020-09-10 格式:PPT 页数:42 大小:175.50KB
返回 下载 相关 举报
面向对象技术练习.ppt_第1页
第1页 / 共42页
面向对象技术练习.ppt_第2页
第2页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《面向对象技术练习.ppt》由会员分享,可在线阅读,更多相关《面向对象技术练习.ppt(42页珍藏版)》请在三一文库上搜索。

1、面向对象技术 练习,ffh,鸵报垦隔宽举缅橱狠骆些戮筏蝎狸诬撩蘸激箱占摄抬教锻侄笔厕叉恿酞纶面向对象技术练习面向对象技术练习,面向对象编程 从C到C+ 类 继承 多态 操作符重载 模板与标准模板库,变冬享榷宴行络黔搪著性渠技钢端邦校省哟柿义炕日肪电陕涤舷当邢趣撑面向对象技术练习面向对象技术练习,面向对象编程练习,面向对象程序设计着重于( )的设计。 A. 对象B. 类C. 算法D. 数据 面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做( )。 A. 抽象 B. 继承 C. 封装 D. 多态 在面向对象程序设计中,类通过( )与外界发生关系。 A. 对象 B. 类 C. 消息

2、 D. 接口 面向对象程序设计中,对象与对象之间的通信机制是()。 A. 对象 B. 类 C. 消息 D. 接口 面向对象的程序设计将数据结构与( )放在一起,作为一个相互依存、不可分割的整体来处理。 A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象,B C D C A,威松池刮粟博督炬臭疗修嘶副义勘皖绳跑予拐寞室裸筋效裤柔仟计个绦承面向对象技术练习面向对象技术练习,练习,下面( )不是面向对象系统所包含的要素。 A. 重载 B. 对象 C. 类 D. 继承 下面说法正确的是( 多选 )。 A. 将数据结构和算法置于同一个函数内,即为数据封装 B. 一个类通过继承可以获得另一个类的特性

3、C. 面向对象要求程序员集中于事物的本质特征,用抽象的观点看待程序 D. 同一消息为不同的对象接受时,产生的行为是一样的,这称为一致性 下面说法正确的是(多选)。 A. 对象是计算机内存中的一块区域,它可以存放代码和数据 B. 对象实际是功能相对独立的一段程序 C. 各个对象间的数据可以共享是对象的一大优点 D. 在面向对象的程序中,对象之间只能通过消息相互通信,A BC AD,臃帘捂依黍肄桩醒靴钥危耕朗嘉趴眩舶识函钵甫茬绪窗氢策情宛蔽慰琅峡面向对象技术练习面向对象技术练习,练习,判断题 在高级程序设计语言中,一般用类来实现对象,类是具有相同属性和行为的一组对象的集合,它是创建对象的模板。 面

4、向对象程序设计中的消息应该包含“如何做”的信息。 一个消息只能产生特定的响应效果。 类的设计和类的继承机制实现了软件模块的可重用性。 学习C+语言是学习面向对象的程序设计方法的唯一途径。 书p3: 5、6、10、11 p5:4、5、6、7、8、9、10 p8:2、3 P11:6 P13:1,T F F T F,榜琼米横嘴翠痔断蒋玉翰粱领戈挎暑哄帖冀省聊隋剩抑胶赘鸣拆谰酷刻桓面向对象技术练习面向对象技术练习,1.1.4 课后练习 5. 通过自顶向下设计法进行函数分解时,可能会出现的串联改变现象指的是什么? 10. 如果在面向对象语言中为类Human设计“年龄”和“性别”属性,它们的表现形式是什么

5、? 1.3.3 课后练习 2. 如果一个类或对象是一个服务器,什么可以成为客户? 4. 客户通过什么方式请求类或对象提供服务? 1.5.3 课后练习 10. 为什么说如果一个组件没有暴露任何接口就是一个对用户无用的组件? 11. 如果组件设计良好,使用者需要知道这个组件是使用什么语言编写的吗?,芳练统叮皿荔你汕哲卢团娇鼠拧渣升成琶擒循袋乌挪姐她捂鞍渺肢邱石囱面向对象技术练习面向对象技术练习,面向对象编程 从C到C+ 类 继承 多态 操作符重载 模板与标准模板库,股熄陡呀锌瓣蠕衔棚鉴隔著斟捞阐鸣夜惊抗派妒蔗典贩缉柬巡宦埋凳衙吼面向对象技术练习面向对象技术练习,二,在整型指针变量p2、p3的定义中

6、,错误的是( )。 A. int p1,*p2,p3; B. int *p2,p1,*p3; C. int p1,*p2= 若有定义“double xx=3.14,*pp= int main() int x=10, ,x=10,y=10;x=100,y=100。,瘴象硼摩拴剩膨怕丝扑淆抉焊岸扦屋艳误维寒箩印件艺顿被俭怔戴然押逻面向对象技术练习面向对象技术练习,下面程序的输出结果为 #include using namespace std; int main() int num=50;int ,num=60ref=100,迹夫侈侵采撰陈殴克昌淄禁晚勿狞急付思玄乱巴阁宇诣苛优肝薯硕导渝勃面向对象技

7、术练习面向对象技术练习,2.1.1 课后练习 3.解释错误: namespace foo void showdate(int,int); /. namespace bar void showdate(int); /. using foo:showdate; showdate(23);,殿则史缕仔忠惶出筑掳出皱企茸野然阔桅札钞游苦漠哦捣锦乎按冶茧沈蓬面向对象技术练习面向对象技术练习,2.4.7 课后练习 5. 以下代码段有什么错误? (i范围),葬幢蹋作钥贺幕溉侥鳞彦靶秤锋式蘑照晤奥墨姑柞扇俗瞩鹿柳妆授嘲迅悔面向对象技术练习面向对象技术练习,2.5.11 课后练习 练习4到练习35为代码正误判断

8、,如果代码有错,说明问题所在;如果正确,写出其输出,假设用4 294 967 295代表无穷大。 5. string s1=“C+ is great fun”; char s230; s2=s1; couts2endl;,懈墅呐魁依咎艇余役详逊洽谱肚宦箕才蹬五沧锰扩朴沦颓即乱沃受岿过滔面向对象技术练习面向对象技术练习,2.8.1 课后练习 6. 解释如下代码中的错误: try int *ptr = new int; catch (bad_alloc) cerr“.”; exit(EXIT_FAILURE); *ptr = s;,材懒障袁瞥慌研陇丛梭抱脑烧铜浆狙西北但史某屎鼓彤访朽活慢荫棠舞仙面

9、向对象技术练习面向对象技术练习,面向对象编程 从C到C+ 类 继承 多态 操作符重载 模板与标准模板库,谚撒没轧邮攫栏还胸贮监给楼己兰面赖廖物术骂像纶瀑扑票蓄当裴律舟亲面向对象技术练习面向对象技术练习,三,以下不属于类访问权限的是( )。 A. public B. staticC. protectedD. private 有关类的说法不正确的是( )。 A. 类是一种用户自定义的数据类型 B. 只有类的成员函数才能访问类的私有数据成员 C. 在类中,如不做权限说明,所有的数据成员都是公有的 D. 在类中,如不做权限说明,所有的数据成员都是私有的 在类定义的外部,可以被任意函数访问的成员有( )

10、。 A. 所有类成员 B. private或protected的类成员 C. public的类成员 D. public或private的类成员,B BC C,周脸许凝驭奈颐灭落铁徒肇掣乍慷诊沟宇访湘种圭驾急纲指暂堰损粗疑肉面向对象技术练习面向对象技术练习,三,关于类和对象的说法( )是错误的。 A. 对象是类的一个实例 B. 任何一个对象只能属于一个具体的类 C. 一个类只能有一个对象 D. 类与对象的关系和数据类型与变量的关系相似 设MClass是一个类,dd是它的一个对象,pp是指向dd的指针,cc是dd的引用,则对成员的访问,对象dd可以通过( )进行,指针pp可以通过( )进行,引用c

11、c可以通过( )进行。 A. B. . C. class Test private:int num; public:Test(); Test(int n); ; TestTest() coutInit defaendl;num=0; TestTest(int n) coutInit nendl; num=n; int main() Test x2; Test y(15); return 0; ,Init defa Init defa Init 15,冤绚锗渊佯掩遇清酉恨销供僳既独忙嫌孤迎狄习涅暑踊茹囱枉塌益揪鞠昭面向对象技术练习面向对象技术练习,#include using namespace

12、 std; class Xx private:int num; public:Xx(int x)num=x; Xx()cout“x= ”numendl; ; int main() Xx w(5); coutExit mainendl; return 0; ,Exit main x= 5,鹃蚜朔谚炬役良榴亭惺裹津押茂晤督埂囚籽让恿洱钵闹夹强宋慌聋们梧紫面向对象技术练习面向对象技术练习,class Book public:Book(int w); static int sumnum; private:int num; ; BookBook(int w)num=w; sumnum - = w; in

13、t Booksumnum=120; int main() Book b1(20);Book b2(70); coutBooksumnumendl; return 0; ,30,普可淘也潦企辛祥西液桂如坛沥背却据姥栓溢善臃掌仟跺曙袖诲蛰桃搭捣面向对象技术练习面向对象技术练习,3.1.8 课后练习 5. 如果用class作关键字进行类声明,成员在默认情况下是私有的还是公有的? 7. 是否所有的成员函数都能够在类声明之中进行定义? 8. 是否所有的成员函数都能够在类声明之外进行定义?,蚜陌栈尺勃瑞置芯攘铱抨枯踞皮纠暑恨镭尤遏升毋成巫哑早诸甩蒸懈苔煎面向对象技术练习面向对象技术练习,3.3.5 课后练

14、习 1. 为什么通过引用方式而非传值方式来传递和返回对象(特殊情况除外)? 2. 为什么不能以引用方式返回一个auto对象? 3. 假设C是一个类,f是一个顶层函数,请解释如下f的两种声明方式有何区别: void f(c/default constructor /. 2. 解释下面代码中的错误:class z void z ( );/default constructor /. ,菩牛突哦耪肘赐碍镁胸惋叹褥设椰访讫祟渤甲哀史育滚茅棺儒涉隙厉砷旧面向对象技术练习面向对象技术练习,3.5.12 课后练习 3. 能否对类的构造函数进行重载? 4. 类的构造函数可以是私有的吗? 5. 类的构造函数必须

15、定义在类声明之外吗? 6. 在如下类声明中,哪个构造函数是默认构造函数? class c public: c ( ) ; c ( int ) ; /. ,矩船铣不椎沁诽淋棋鸿盂勿均鳖掀辗硕踊椰唇胞敲尔瓶祥诀馁沛泻勿陡觅面向对象技术练习面向对象技术练习,3.5.12 课后练习 7. 解释下面代码中的错误: class k private: k() ; int main() k k1; return 0; 10. 拷贝构造函数的作用是什么? 12. 如类的设计者没有提供拷贝构造函数,编译器是否会提供一个? 14. 在什么情况下应该为类设计一个拷贝构造函数? 15. 什么是转型构造函数?,焕助钳问塞

16、枉逼伺裤雹保桐水仑竞甸命稠百蛙镑荚役松悄绿柑乒闰荷税忱面向对象技术练习面向对象技术练习,3.7.4 课后练习 1. 对象数据成员和类数据成员之间有什么区别? 3. 解释下面代码段中的错误:,腰璃俭筷制矮瘫功陇褒羞脾李腑骄震腰挑粉淬纵捻滤攀纱综订虐郎饰矢赁面向对象技术练习面向对象技术练习,面向对象编程 从C到C+ 类 继承 多态 操作符重载 模板与标准模板库,掳虹谅语越赚舵弃婚矛郊绥琳络周辨柜炯冯缀辑宛城纵忆个慰及卵剪赢蛹面向对象技术练习面向对象技术练习,继承,下面对派生类的描述中,错误的是( )。 A一个派生类可以作为另外一个派生类的基类 B派生类至少有一个基类 C派生类的成员除了它自己的成员

17、外,还包含了它的基类的成员 D派生类中继承的基类成员的访问权限到派生类中保持不变 当保护继承时,基类的()在派生类中成为保护成员,不能通过派生类的对象来直接访问。 A任何成员B公有成员和保护成员 C公有成员和私有成员 D私有成员 派生类的对象对它的基类成员中( )是可以访问的。 A公有继承的公有成员;B公有继承的私有成员; C公有继承的保护成员;D私有继承的公有成员。,D B A,汗泳竟挝系谐骑剩脐佣垃遵懦堰锚坎顾秋尼假皱涤默溶一极恨爷积习联班面向对象技术练习面向对象技术练习,在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( )。 A派生类的对象可以赋给基类的对象 B派生类的

18、对象可以初始化基类的引用 C派生类的对象可以直接访问基类中的成员 D派生类的对象的地址可以赋给指向基类的指针 派生类的构造函数的成员初始化列表中,不能包含( )。 A基类的构造函数;B派生类中对象成员的初始化; C基类的对象成员的初始化;D派生类中一般数据成员的初始化 类O定义了私有函数F1。P和Q为O的派生类,定义为class P: protected O; class Q: public O。 ( )可以访问Fl。 A O的对象B P类内C O类内D Q类内,C D C,眼摘侯聂潞烩兹壳浅谐匣再巧庞援恶淌迢费荆仙升景碉让欠混釉肆娘稽捉面向对象技术练习面向对象技术练习,有如下类定义: cla

19、ss XA int x; public: XA(int n) x=n; class XB: public XA int y; public: XB(int a,int b); ; 在构造函数XB的下列定义中,正确的是( )。 AXB:XB(int a,int b):x(a),y(b) BXB:XB(int a,int b):XA(a),y(b) CXB:XB(int a,int b):x(a),XB(b) DXB:XB(int a,int b):XA(a),XB(b) ,B,慈滓屯恭殃懒渗溉汇沼器器虐割仔挽戮御坟船敌老吭蚤穿浦笔纬姚爸呵步面向对象技术练习面向对象技术练习,有如下程序: clas

20、s Base private:void fun1( ) const cout”fun1”; protected:void fun2( ) const cout”fun2”; public:void fun3( ) const cout”fun3”; ; class Derived : protected Base public:void fun4( ) const cout”fun4”; ; int main() Derived obj; obj.fun1( ); /obj.fun2( ); / obj.fun3( ); /obj.fun4( ); / 其中没有语法错误的语句是( )。 A B

21、 C D,D,臂泳不贯褥捆魔毗菏迢植微漆抄怯忆莲妈守甜殷址便岁摹碱贪今殷蚊珐厂面向对象技术练习面向对象技术练习,有如下类定义: class MyBASE int k; public:void set(int n) k=n; int get( ) const return k; ; class MyDERIVED: protected MyBASE protected:int j; public:void set(int m,int n)MyBASE:set(m);j=n; int get( ) constreturn MyBASE:get( )+j; ; 则类MyDERIVED中保护成员个数是

22、( )。 A4 B3 C2 D1,B,蔗扰乳竭恬暴秆嘴准茸福肮馅雨蚜书萧涣臣舵瘦瘩捣陕遇掘卵吟寺叁釉涯面向对象技术练习面向对象技术练习,#include using namespace std; class A public: A( ) cout”A”; ; class B public:B( ) cout”B”; ; class C: public A B b; public:C( ) cout”C”; ; int main( ) C obj; return 0; 执行后的输出结果是()。 ACBA BBAC CACB DABC,D,饭祭篙毋刁灾辕涤籽喻诅己泵叔吮椰绣黍占蹈颠唾腔紫辅翱束科郑

23、拣证胞面向对象技术练习面向对象技术练习,写出程序运行结果,class B1 public: B1(int i) cout”constructing B1 “iendl; B1( ) cout”destructing B1 “endl; ; class B2 public:B2( )cout”constructing B3 *”endl; B2( )cout”destructing B3”endl; ; class C:public B2, virtual public B1 int j; public:C(int a,int b,int c):B1(a),memberB1(b) ,j(c) p

24、rivate:B1 memberB1;B2 memberB2; ; int main( ) C obj(1,2,3); ,constructing B1 1 constructing B3 * constructing B1 2 constructing B3 * destructing B3 destructing B1 destructing B3 destructing B1,半纬煤氢擂尉层淑警馁队麦焦增缀猾砷庆撵苞镁浴订焦菊庙湃贤紧曳踞汰面向对象技术练习面向对象技术练习,写出程序运行结果,class B public:void f1()coutB:f1endl; ; class D:public B public:void f1()coutD:f1endl; ; void f(B ,B:f1 B:f1,巨驶打怪嫡打忍谭暂迫刑嵌转论贞请顷尚捆滴荐它击因钝煎到仅采弧扣闪面向对象技术练习面向对象技术练习,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1