C++内置了异常处理语法元素 try ,catch,throw。 try里面语句里产生异常( devide(1,0)产生除零异常),try里面函数devide用throw扔出异常值(对象,值),然后程序返回调用点,catch在调用点捕获到异常。 throw抛出的异常必须被catch处理。当前函数能够 Read More
posted @ 2019-05-14 19:44 张不源 Views(205) Comments(0) Diggs(0) Edit
异常:异常(Exception)是可预料的执行分支,bug是不可被预料的执行分支 异常:除以0,数组访问越界。 bug: 使用野指针,申请内存没有释放。 C语言异常处理方法: int setjump(jmp_buf env) :将上下文保存在jmp_buf结构体 void longjump(jmp_ Read More
posted @ 2019-05-14 18:11 张不源 Views(1261) Comments(0) Diggs(0) Edit
单例模式:类在系统生命周期中只有一个对象存在 思路:将构造函数设为私有。创建一个标记,用于指示对象的个数,多于一个返回已经创建了的对象,少于一个则创建一个。 单例类模板的实现: 进阶的单例类模板: #ifndef _SINGLETON_H_ #define _SINGLETON_H_ templat Read More
posted @ 2019-05-14 17:01 张不源 Views(346) Comments(0) Diggs(0) Edit
STL库的智能指针:auto_ptr 1. auto_ptr声明周期结束时,自动销毁指向的内存空间。(内存泄漏) 2. 不能指向堆数组,只能指向堆空间单个对象或变量。 3. 不能进行指针运算和指针比较。 4. 多个auto_ptr不能指向同一个堆空间。 STL库的智能指针:shared_ptr,we Read More
posted @ 2019-05-14 15:38 张不源 Views(294) Comments(0) Diggs(0) Edit
模板参数可以是字面量型参数(非类型参数), 字面量型参数限制:变量,浮点数(无法精确表示),类对象不能作为模板参数。(模板参数是在编译阶段是要被确定的) 数组模板类: 1 #ifndef _ARRAY_H_ 2 #define _ARRAY_H_ 3 4 template 5 < typename Read More
posted @ 2019-05-14 12:56 张不源 Views(262) Comments(0) Diggs(0) Edit