C++⾯向对象程序设计教程第版—陈维兴林⼩茶课后习题答案
C++⾯向对象程序设计教程课后题答案
1.1 什么是⾯向对象程序设计?
⾯向对象程序设计是⼀种新的程序设计范型.这种范型的主要特征是:
1.3 现实世界中的对象有哪些特征?请举例说明。
现实世界中的对象具有以下特征:
1) 每⼀个对象必须有⼀个名字以区别于其他对象;
2) ⽤属性来描述对象的某些特征;
3) 有⼀组操作,每组操作决定对象的⼀种⾏为;
4) 对象的⾏为可以分为两类:⼀类是作⽤于⾃⾝的⾏为,另⼀类是作⽤于其他对象的⾏为。
例如⼀个教师是⼀个对象。每个教师对象有⾃⼰的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有⾛路,吃饭,授课等⾏为操作。⾛路,吃饭是作⽤于⾃⾝的⾏为,授课是作⽤于其他对象的⾏为。
1.4 什么是消息?消息具有什么性质?
操作。⼈们在使⽤洗⾐机的时候只需要按下对应的按钮,⽽不⽤关⼼具体的内部实现。这就是封装。
1.6 什么是继承?请举例说明。
继承就是允许派⽣类使⽤基类的数据和操作,同时,派⽣类还可以增加新的操作和数据。
例如:哺乳动物是⼀种热⾎、有⽑发、⽤奶哺育幼崽的动物;狗是有⽝⽛、⾷⾁、特定的⾻骼结构、居的哺乳动物。狗就继承了哺乳动物。
1.7 若类之间具有继承关系,则他们之间具有什么特征?
若类之间具有继承关系,则他们之间具有下列⼏个特征:
1) 类间具有共享特征(包括数据和操作代码的共享);
1.10 ⾯向对象程序设计的主要优点是什么?
1.可提⾼程序的重⽤性;
2.可控制程序的复杂性;
3.可改善程序的可维护性;
4.能够更好地⽀持⼤型程序设计;
5.增强了计算机处理信息的范围;
能够很好地适应新的硬件环境。
2.1 简述C++的主要特点。
1) C++是C的超集,保持与C的兼容。
2) 保持了C的简洁、⾼效和接近汇编语⾔等特点,并对C的功能作了不少扩充。⽤C++编写的程序⽐C更安全,可读性更好,代码结构更为合理。
3) 程序质量⾼。
4) 增加了⾯向对象机制。
2.2
#include
using namespace std;
int main()
{
int a, b, d, min;
cout << "Enter two numbers:";
cin >> 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;
return0;
}
cout << "The lowest common denominator is" << d << endl;
return0;
}
2.3 有效
2.4 没有函数声明;
函数定义没有写返回值类型。
2.5 (1)等价,函数声明可以省略参数的名字。
(2)不等价,第⼆个的函数定义不能省略参数的名字。
2.6-2.10 CDAAB
2.11-2.15 ACBDC
2.16-2.17 DC
2.18
101
2.19
10 10
2.20
10
20
2.21 举例说明可以使⽤const替代#define以消除#define的不安全性。
#include
using namespace std;
int main()
{
int a = 1;
#define T1 a+a
#define T2 T1-T1
cout << "T2 is " << T2 <
return0;
}
上⾯这个程序,初看应该输出 T2 is 0
但是实际上,得出T2 is 2
如果把#define换成const,则可以输出想要的结果。
2.22 ⽤动态分配空间的⽅法,计算Fibonacci数列的前20项,并存储到动态分配的空间中。
#include
using namespace std;
int main()
{
int *pi = new int[20];
*pi = 1;
pi[1] = 1;
for(int i = 2; i < 20; i++)
{
pi[i] = pi[i - 2] + pi[i - 1];
}
return0;
}
2.23 重载sroot函数,输出⼀个数的⼆次⽅根。
#include
using namespace std;
double sroot(int num)
{
return (double)sqrt((double)num);
}
double sroot(long num)
指针调用成员函数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论