C面向对象程序设计教程陈维兴,林小茶课后习题答案.docx

上传人:h**** 文档编号:26513637 上传时间:2022-07-18 格式:DOCX 页数:14 大小:15.76KB
返回 下载 相关 举报
C面向对象程序设计教程陈维兴,林小茶课后习题答案.docx_第1页
第1页 / 共14页
C面向对象程序设计教程陈维兴,林小茶课后习题答案.docx_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《C面向对象程序设计教程陈维兴,林小茶课后习题答案.docx》由会员分享,可在线阅读,更多相关《C面向对象程序设计教程陈维兴,林小茶课后习题答案.docx(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C面向对象程序设计教程陈维兴,林小茶课后习题答案.doc C+ 面向对象程序设计教程课后题答案 什么是面向对象程序设计? 面向对象程序设计是一种新的程序设计范型. 这种范型的主要特征是 : 程序 =对象 +消息 面向对象程序的基本元素是对象。 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成; 第二,程序中的一切操作都是通过向对象发送消息来实现的。 什么是对象 ?什么是类 ?对象与类之间的关系是什么? 对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统 一体。 类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象

2、的描述。 类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果, 一个对象是类的一个实例。 现实世界中的对象有哪些特征?请举例说明。 现实世界中的对象具有以下特征: 1)每一个对象必须有一个名字以区别于其他对象; 2)用属性来描述对象的某些特征; 3)有一组操作,每组操作决定对象的一种行为; 4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对 象的行为。 例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师 具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为 操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的

3、行为。 什么是消息?消息具有什么性质? 一个对象向另一个对象发出的请求成为“消息”。 消息具有以下 3 个性质: 1) 同一个对象可以接收不同形式的多个消息,做出不同的相应; 2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的; 3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。 什么是抽象和封装?请举例说明。 抽象是将有关事物的共性归纳、集中的过程。 例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。 封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。 例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、

4、暂停、选择等操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。 什么是继承?请举例说明。 继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作 和数据。 例如:哺乳动物是一种热血、有毛发、用奶哺育幼崽的动物;狗是有犬牙、食肉、特定的骨骼结构、群居的哺乳动物。狗就继承了哺乳动物。 若类之间具有继承关系,则他们之间具有什么特征? 若类之间具有继承关系,则他们之间具有下列几个特征: 1)类间具有共享特征(包括数据和操作代码的共享); 2) 类间具有差别或新增部分(包括非共享的数据和操作代码); 3)类具有层次结构。 什么是单继承、多继承?请举例

5、说明。 单继承是指每个派生类只直接继承了一个基类的特征。例如狗继承自哺乳动物。 多继承是指多个基类派生出一个派生类的继承关系。比如玩具车同时继承自玩具和车。 什么是多态?请举例说明。 多态是指不同的对象收到相同的消息时执行不同的操作。 例如,有一个窗口类对象,还有一个棋子类对象。当我们发出“移动”消息时, 两个对象的行为不同。 面向对象程序设计的主要优点是什么? 1.可提高程序的重用性; 2.可控制程序的复杂性; 3.可改善程序的可维护性; 4.能够更好地支持大型程序设计; 5.增强了计算机处理信息的范围; 能够很好地适应新的硬件环境。 简述 C+的主要特点。 1) C+是 C 的超集,保持与

6、 C 的兼容。 2) 保持了 C 的简洁、高效和接近汇编语言等特点,并对 C 的功能作了不少扩充。用 C+编写的程序比 C更安全,可读性更好,代码结构更为 合理。 3)程序质量高。 4)增加了面向对象机制。 #include using namespacestd; int main() int a, b, d, min; cout a b; min = a b ? b : a; for (d = 2; d min; d+) if (a % d) =0) & (b % d ) =0)break ; if(d = min) cout No common denominators endl; ret

7、urn 0; cout The lowest common denominator is d endl; return 0; 有效 没有函数声明; 函数定义没有写返回值类型。 (1)等价,函数声明可以省略参数的名字。 ( 2)不等价,第二个的函数定义不能省略参数的名字。CDAAB ACBDC DC 101 10 10 10 20 举例说明可以使用const 替代 #define 以消除 #define的不安全性。 #include using namespacestd; int main() int a = 1; #define T1 a+a #define T2 T1-T1 cout T2

8、is T2 endl; return 0; 上面这个程序,初看应该输出T2 is 0 但是实际上,得出T2 is 2 如果把 #define 换成 const ,则可以输出想要的结果。 用动态分配空间的方法,计算 Fibonacci 数列的前 20 项,并存储到动态分配的空间中。 #include using namespacestd; int main() int *pi = new int 20; *pi = 1; pi 1 = 1; for ( int i = 2; i 20; i+) pii = pii - 2 + pii - 1; return 0; 重载 sroot函数,输出一个数

9、的二次方根。 #include using namespacestd; double sroot( int num) return ( double )sqrt(double )num); double sroot( long num) return ( double )sqrt(double )num); double sroot ( double num) return ( double )sqrt(num); int main() return 0; 解决百钱问题。将一元人民币换成1、2、 5 分的硬币,有多少种换法? #include using namespacestd; int m

10、ain() int num = 0;Default constructor called. Default constructor called. Construcotor:a=1,b=2 Construcotor:a=3,b=4 Construcotor:a=5,b=6 Con. Copy con. default. Copy con. A=5 B=14 A=9 B=14 5,7 Constructing Constructing A=5 B=15 A=10 B=15 Destructing Destructing void pintStu();函数只有声明,没有定义。 age 是私有成员,

11、不能用对象直接调用。 void printStu()和void setSno(int s)没有加限定符 Student: void setAge(int a)在类中没有声明 构造函数不能定义为私有。否则无法创建对象。 下面是一个计算器类的定义,请完成该类成员函数的实现。 class counter public : counter(int number); void increment();ult() ; 修改,通过对象指针访问对象数组,使程序以相反的顺序显示每个对象数组元素的 qu*price 值。 class book private: int qu, price; public : bo

12、ok( int qu); int mult(); ; book:book( int q) if (q 5) qu = 1; else qu = q; price = 10 * qu; int book:mult() return qu * price; int main() book books5 = book *p = books; p +=4; for ( int i =0; i 1, 2, 3, 4, 5; 5; i+) cout mult() -p; ; return 0; 构建一个类Stock ,含字符数组stockcode及整型数组成员quan、双精度型数据成员price 。构造函

13、数含 3 个参数:字符数组na 及 q、p。当定义 Stock 的类对象时,将对象的 第一个字符串参数赋给数据成员stockcode ,第 2 和第 3 个参数分别赋给quan、 price 。未设置第 2 和第 3 个参数时, quan 的值为 1000 ,price的值为.成员函数print没有形参,需使用 this指针,显示对象数据成员的内容。编写程序显示对象数据成员的值。 #include using namespacestd; class Stock private: char stockcode25; int quan; double price; public : Stock(

14、char na, int q = 1000, double p = ; Stock( char na); void print(); ; Stock:Stock( char na, int q = 1000, double p = strcpy(stockcode, na); quan = q; price = p; void Stock:print() cout stockcode: stockcode quan: quan price: int main() Stock stock1( Stock stock2( (); (); 600001 ,3000, ; 600002 ); return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com