LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: devel

帮我做几道题目 谢谢了

[复制链接]
发表于 2004-5-2 14:12:29 | 显示全部楼层
类的知识要很熟练才行。
发表于 2004-5-2 15:25:35 | 显示全部楼层
最初由 cozo 发表
我觉得还要考虑到那个virtual的用法。

当然要考虑virtual的用法,如果没有这个virtual,每次基类指针调用的都是基类的show()函数.
发表于 2004-5-2 15:27:26 | 显示全部楼层
其实我给出的解答意思也很简单, 就是动态语义与静态语义相结合,造成了现在的运行结果.
发表于 2004-5-2 15:29:46 | 显示全部楼层
最初由 henryouly 发表
类的知识要很熟练才行。

这个和类的知识有什么关系,在其它面向对象的语言中是没有这种现象的. 这是c++用virtual函数来实现多态造成的问题.
发表于 2004-5-3 00:29:59 | 显示全部楼层
看了头晕。。
发表于 2004-5-3 11:01:19 | 显示全部楼层
版主的讲解精彩!
发表于 2004-5-3 22:01:24 | 显示全部楼层
看来靠别人不行啊,到头来还是要靠自己,多谢各位了!
不过要是大家肯多说一点的话,小弟还是很感谢的!
发表于 2004-5-4 08:45:44 | 显示全部楼层
最初由 heavenevil 发表
看来靠别人不行啊,到头来还是要靠自己,多谢各位了!
不过要是大家肯多说一点的话,小弟还是很感谢的!
作业并不是不可以问, 但关键是要注意提问的方式. 这一点在<提问的智慧 >中说得很清楚了. 比如说, 可以问作业中碰到的具体问题, 如果做不出来, 可以请大家给一点具体的思路等等. 最好能详细讲出你是如何考虑问题的, 以便显示出你努力的态度. 这样都能争取大家的同情和理解, 也能得到更多的帮助.
不过, 这次情况有点特殊, 一个原因是碰上"五一"放假, 来论坛的人少了. 另一个原因是题目本身确定难度大, 能做出来的人恐怕很少. 呵呵...
发表于 2004-5-4 09:13:53 | 显示全部楼层
再来做几道题目, 难得碰上这么有挑战性的c++练习题, 呵呵...:
第二大题, 题目不完整, 先放下...

三 选择题(每空1分,共10分)
  1. 1 编写程序时,尽可能做到 。
  2. ⑴ 程序的语句数越少越好 ⑵ 循环语句尽量不用
  3. ⑶ 提高程序的可读性 ⑷ 减少函数被调用的次数
  4. ⑵ 只要语句不多于10条的函数都可以定义成内联函数。
  5. ⑶ 语句少的构造函数最好定义成内联函数,可以提高效率。
  6. ⑷ 内联函数可以免去函数调用的开销。
  7. ⑸ 把那些调用不频繁的函数定义成内联函数可以提高程序运行效率。
复制代码
(1)程序的语句数越少越好. 不提倡, 没有 这个必要. (2)循环语句尽量不用能行吗? 没有那一种程序设计语言不用循环语句的. (3) 提高程序的可读性 . 这一点符合软件工程的要求, 也是一种良好的程序设计风格. (4)减少函数被调用的次数. 这个也不对, 没有这个必要. 多使用函数有利于程序的模块化.
(2)只要语句不多于10条的函数都可以定义成内联函数. 内联函数是为了避免函数频繁调用的开销才使用的. 如果调用不频繁, 没有太大的必要做成内联函数.
(3)语句少的构造函数最好定义成内联函数,可以提高效率. 提高不了效率.原因同上. 构造函数只是在类的实例初始化时起作用, 使用的次数是不多的.
(4) 内联函数可以免去函数调用的开销。从前面给出的答案可以知道这是对的.
(5) 把那些调用不频繁的函数定义成内联函数可以提高程序运行效率。这不就是与内联函数的目的相违背了吗?
发表于 2004-5-4 10:08:45 | 显示全部楼层
  1. 2 一个数组所占有的内存空间是 的。
  2. ⑴ 连续 ⑵ 不连续 ⑶ 随机分配 ⑷ 小的数组是连续的、大的数组可以是不连续
复制代码
学过数据结构和汇编程序就知道, 数组占用的空间是连续的.
  1. 3 用new创建的局部动态对象的作用域是 。
  2. ⑴ 局部作用域 ⑵ 函数作用域 ⑶ 文件作用域 ⑷ 函数原型作用域
复制代码
这个题目出得很怪, 变量的作用域在编译原理上应该是一个静态的概念, 而new创建的对象是动态的, 这种对象的生命周期从创建时开始到人为释放它为止结束. 它的存在并不是由编译时某个变量的作用范围决定的. 你可以在new一个对象之后不释放它, 它会一直存在到程序结束运行为止.
不过这只是对c++而言, 对于java, 在变量生命周期结束后, 会自动回收动态分配的资源, 比较接近的答案可以考虑选函数作用域.
  1. 4 如果Student类继承于People类,下面 说法是正确的。
  2. ⑴ Student 类包含了People类的全部成员。
  3. ⑵ Student类的对象包含了People的全部数据成员。
  4. ⑶ Student类的对象包含People的哪些成员,取决于继承类别。
  5. ⑷ 如果Student类私有继承了People类,则Student类的对象中就不包含People类的私有成员。
复制代码
答案显然是:Student 类包含了People类的全部成员
  1. 5 抽象类的构造函数不能定义成  的。
  2. ⑴ public  ⑵ private   ⑶ protected
复制代码
好象应该是不能定义成public吧. 因为抽象类就是起一个接口的作用, 是不能生成具体对象的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表