摘要: 1、C语言存在的问题 C语言不支持真正意义上的字符串 C语言用字符数组和一组函数实现字符串操作 C语言不支持自定义类型,无法获得字符串类型 C++可以通过类完成字符串类型的定义,但是原生类型系统并没有包含字符串类型,而是在 库中。 但是不同的应用中,可能会使用不同的库。 2、字符串类的设计 类继承自 阅读全文
posted @ 2018-09-26 10:33 小胖鼠 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 1、关于析构的疑问 单个对象创建时构造函数的调用顺序: 1. 调用父类的构造过程 2. 调用成员变量的构造函数(调用顺序与声明顺序相同) 3. 调用类自身的构造函数 析构函数与对应的构造函数的调用顺序相反 关于析构 对于栈对象和全局对象,类似于入栈和出栈的顺序,最后构造的对象被最先析构!! 堆对象的 阅读全文
posted @ 2018-09-25 21:03 小胖鼠 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 思考: 构造函数是一个特殊的函数 是否可以直接调用? 是否可以在构造函数中调用构造函数? 直接调用构造函数的行为是什么? 答: 直接调用构造函数将产生一个临时对象 临时对象的生命周期只有一条语句的时间 临时对象的作用域只在一条语句中 临时对象是C++中值得警惕的灰色地带 编译器的行为:现代C++编译 阅读全文
posted @ 2018-09-25 20:44 小胖鼠 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 1、对象销毁 C++中如何清理需要销毁的对象? 一般而言,需要销毁的对象都应该做清理,解决方案: 为每个类都提供一个 的`free()`函数 对象不再需要时立即调用 函数进行清理 存在的问题: 只是一个普通函数,必须显示调用 对象销毁前没有做清理,很可能造成资源泄露 C++编译器是否能够自动调用某个 阅读全文
posted @ 2018-09-25 20:21 小胖鼠 阅读(117) 评论(0) 推荐(0) 编辑
摘要: C++中的类可以定义多个对象,对象的构造顺序是怎样的? 1、对象的构造顺序一 对于局部对象:当程序执行流到达对象的定义语句时进行构造:对象定义 构造 c++ include class Test { private: int mi; public: Test(int i) { mi = i; pri 阅读全文
posted @ 2018-09-25 20:08 小胖鼠 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 1、类中定义 成员,及其初始化 如何初始化类里面的 成员? 首先考虑构造函数初始化 于是出现了初始化列表 C++中提供了初始化列表对成员变量进行初始化 语法规则: 通过初始化列表对ci 进行初始化 类成员的初始化, 注意事项: 成员的初始化顺序与成员的申明顺序相同 成员的初始化顺序与初始化列表中的位 阅读全文
posted @ 2018-09-25 19:54 小胖鼠 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 单链表的每个结点增加一个指针域,用于指向结点的前驱 单链表的另一个缺陷: 单向性:只能从头结点开始高效访问链表中的数据元素 缺陷:如果需要逆向访问单链表中的数据元素将及其低效 c++ int main() { LinkList l; for(int i = 0; i =0; i ) // O(n^2 阅读全文
posted @ 2018-09-17 16:44 小胖鼠 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1、循环链表简介 概念上: 任意数据元素都有一个前驱和一个后继 所有的数据元素的关系构成一个逻辑上的环 实现上: 循环链表是一种特殊的单链表 尾结点的指针域保存了首结点的地址 循环链表的继承层次结构 2、循环链表的实现思路 通过模板定义 类,继承自 类 定义内部函数 ,用于将单链表首尾相连 特殊处理 阅读全文
posted @ 2018-09-17 15:36 小胖鼠 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 1、 智能指针重构 需求:使用智能指针 替换单链表 中的原生指针 将原生指针更改为智能指针后,解决全部的编译问题,程序还是会出错,问题在于: 的设计方案存在的一些特性 指针的生命周期结束时主动释放堆空间 一片堆空间最多只能有一个指针标识 不允许指针运算和指针比较 需求:创建新的指针指针 是智能指针的 阅读全文
posted @ 2018-09-16 11:19 小胖鼠 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 1、函数定义时指定默认参数 在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。 所谓默认参数,指的是当函数 阅读全文
posted @ 2018-09-15 16:25 小胖鼠 阅读(14854) 评论(0) 推荐(3) 编辑