上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 98 下一页
摘要: 13.8 编写一个智能指针类。智能指针是一种数据类型,一般用模板实现,模拟指针行为的同时还提供自动垃圾回收机制。它会自动记录SmartPointer对象的引用计数,一旦T类型对象的引用计数为零,就会释放该对象。解法:智能指针跟普通指针一样,但他借助自动化内存管理保证了安全性,避免了诸如悬挂指针、内存... 阅读全文
posted @ 2014-12-11 12:59 Jessica程序猿 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 13.7写一个函数,其中一个参数是指向Node结构的指针,返回传入数据结构的一份完全拷贝。 Node结构包含两个指针,指向另外两个Node。C++实现代码:typedef map NodeMap;Node* copy_recursive(Node *cur, NodeMap &nodeMap){ ... 阅读全文
posted @ 2014-12-11 11:38 Jessica程序猿 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 13.6 基类的析构函数为何要声明为virtual?解答:用对象指针来调用一个函数,有以下两种情况:如果是虚函数,会调用派生类中的版本。如果是非虚函数,会调用指针所指类型的实现版本。析构函数也会遵循以上两种情况,因为析构函数也是函数嘛,不要把它看得太特殊。 当对象出了作用域或是我们删除对象指针,析构... 阅读全文
posted @ 2014-12-09 23:10 Jessica程序猿 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目C++中名字隐藏是什么?解答让我们通过一个例子来讲解C++中的名字隐藏。在C++中,如果一个类里有一个重载的方法, 你用另一个类去继承它并重写(覆盖)那个方法。你必须重写所有的重载方法, 否则未被重写的方法会因为名字相同而被隐藏,从而使它在派生类中不可见。请看例子:class FirstClas... 阅读全文
posted @ 2014-12-09 22:47 Jessica程序猿 阅读(709) 评论(0) 推荐(0) 编辑
摘要: 13.5谈谈C语言关键字”volatile”的意义(或重要性)?解答关键字volatile的作用是指示编译器,即使代码不对变量做任何改动,该变量的值仍可能被外界修改。操作系统、硬件或其他线程都可能修改该变量。该变量的值由可能遭受意料之外的修改,因此,每一次使用时,编译器都会重新从内存中获取这个值。v... 阅读全文
posted @ 2014-12-09 22:36 Jessica程序猿 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 13.4深拷贝和浅拷贝有什么区别,如何使用?解答浅拷贝并不复制数据,只复制指向数据的指针,因此是多个指针指向同一份数据。 深拷贝会复制原始数据,每个指针指向一份独立的数据。通过下面的代码, 可以清楚地看出它们的区别:struct Test{ char *ptr;};void shallow_c... 阅读全文
posted @ 2014-12-09 22:25 Jessica程序猿 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 13.3C++中的虚函数是如何工作的?解答虚函数依赖虚函数表进行工作。如果一个类中,有函数被关键词virtual进行修饰, 那么一个虚函数表就会被构建起来保存这个类中虚函数的地址。同时, 编译器会为这个类添加一个隐藏指针指向虚函数表。如果在派生类中没有重写虚函数, 那么,派生类中虚表存储的是父类虚函... 阅读全文
posted @ 2014-12-09 22:19 Jessica程序猿 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 13.2浅析哈希表和STL map。对比哈希表和STL map。哈希表是怎么实现的?如果输入数据规模不大, 我们可以使用什么数据结构来代替哈希表。解答对比哈希表和STL map在哈希表中,实值的存储位置由其键值对应的哈希函数值决定。因此, 存储在哈希表中的值是无序的。在哈希表中插入元素和查找元素的时... 阅读全文
posted @ 2014-12-09 22:15 Jessica程序猿 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 13.1 用C++写个方法,打印输出文件的最后K行。解答:一种方法是打开文件两次,第一次计算文件的行数N,第二次打开文件,跳过N-K行, 然后开始输出。如果文件很大,这种方法的时间开销会非常大。我们希望可以只打开文件一次,就可以输出文件中的最后k行。 我们可以开一个大小为k的字符串数组,然后将文件中... 阅读全文
posted @ 2014-12-09 21:52 Jessica程序猿 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 11.7 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上。处于实际和美观的考虑,在上面的人要比下面的人矮一点、轻一点。已知马戏团每个人的高度和重量,请编写代码计算叠罗汉最多能叠几个人。如果要保持相对顺序不变,那么不能直接排序。C++实现代码:#include#includeusing... 阅读全文
posted @ 2014-12-09 20:40 Jessica程序猿 阅读(318) 评论(0) 推荐(0) 编辑
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 98 下一页