上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 58 下一页
摘要: 基于顺序存储结构的线性表可能被当成数组来误用,这一节我们要设计数组类来代替原生数组。 课程目标: Array是一个抽象类,这个类存在的意义就是用来被继承。 需求分析: 原生数组是不提供复制操作的,我们自己的数组要提供复制操作。 length()成员函数设置为纯虚函数,说明这个类是一个纯虚类,用于被继 阅读全文
posted @ 2018-09-11 21:54 周伯通789 阅读(296) 评论(0) 推荐(0)
摘要: 问题: 使用调用门如何实现不同特权级代码之间的跳转(如:从高特权级到低特权级)? 不幸的事实: 调用门只支持从低特权级到高特权级执行 无法利用调用门从高特权级到低特权级执行 从高特权级的代码段通过return far可以返回到低特权级的代码段执行。这时return far是一个跳转指令,完成从高特权 阅读全文
posted @ 2018-09-10 22:09 周伯通789 阅读(540) 评论(0) 推荐(0)
摘要: 问题: 如何在不同特权级的代码段之间跳转执行? 一种新的描述符:门描述符(Gate Descriptor) 通过门描述符在不同的特权级的代码间进行跳转 根据应用场景的不同,门描述符分为: 调用门(Call Gate) 中断门(Interrupt Gate) 陷阱门(Trap Gate) 任务门(Ta 阅读全文
posted @ 2018-09-09 22:16 周伯通789 阅读(681) 评论(0) 推荐(0)
摘要: 保护模式小结: -使用选择子访问段描述符表时,索引值的合法性检测,这个检测是处理器做的 当索引值越界时,引发异常 判断规则:索引值*8 + 7 <= 段描述表界限值 段描述表界限值就是段描述表中的地址最大值 -内存段类型合法性检测,使用选择子给相应的段寄存器赋值的时候会进行这个合法性检测 具备可执行 阅读全文
posted @ 2018-09-09 18:57 周伯通789 阅读(957) 评论(0) 推荐(1)
摘要: 在C语言写的程序中,有时候没有包含头文件,直接调用一些函数,如printf,也不会报错,因为GCC内置和一些函数。如果包含了头文件,则去第三方库中链接这个函数,不再使用GCC内置的函数。每个编译器的内置函数也不一样,换成其他编译器,在不包含头文件的情况下,如果直接调用函数,如printf,则可能报错 阅读全文
posted @ 2018-09-08 20:16 周伯通789 阅读(985) 评论(0) 推荐(0)
摘要: 1. 本文目的:理清在各种继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容。 2. 说明:虽然复制构造函数属于构造函数的一种,有共同的地方,但是也具有一定的特殊性,所以在总结它的性质时将它单独列出来了。 3. 单继承、多继承、虚继承,既然都属于继承,那么虽然有一定的区别,但还 阅读全文
posted @ 2018-09-08 20:14 周伯通789 阅读(2405) 评论(0) 推荐(0)
摘要: 问题: 动态内存申请一定成功吗? 问题: new语句中的异常是怎么抛出来的? 一般我们会在new_handler函数中进行内存的整理,整理之后再次申请。 问题: 如何跨编译器统一new的行为,提高代码移植性? 全局定义new就是全局new操作符的重载。 最后两种方法是推荐的做法。 使用nothrow 阅读全文
posted @ 2018-09-08 19:13 周伯通789 阅读(294) 评论(0) 推荐(0)
摘要: 如何判断一个函数是否会抛出异常,以及抛出哪些异常? 如果是第三方库函数我们看不到实现,只能看到声明,如何判断是否会抛出异常呢? 解决方案: 问题: 如果抛出的异常不在异常规格列表中,会发生什么? 示例: bcc结果如下: linux结果如下: vs2010结果如下: vs中的处理方式是,抛出的异常被 阅读全文
posted @ 2018-09-07 21:57 周伯通789 阅读(218) 评论(0) 推荐(0)
摘要: 问题: 如果在main函数中抛出异常会发生什么? 上述实验结果: bcc结果: vs2010结果: linux结果: 自定义结束函数: 结果如下: 第10行的exit(1)保证所有的全局对象和局部静态对象都正常的析构。 将第10行的exit换成abort,则结果如下: 可以看到换成abort之后,不 阅读全文
posted @ 2018-09-07 21:18 周伯通789 阅读(254) 评论(0) 推荐(0)
摘要: 如何统计对象中某个成员变量的访问次数? 解法: 这里我们只能满足普通对象的访问统计,那么const对象呢? 完善解法,使得能统计只读对象的访问次数: 使用了mutable之后,只读对象名存实亡。 使用mutable可以完成const对象的访问统计,但是不使用mutable也可以完成这个需求。 使用指 阅读全文
posted @ 2018-09-06 23:21 周伯通789 阅读(283) 评论(0) 推荐(0)
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 58 下一页