04 2017 档案

摘要:上文简述了在C语言中异常的处理机制,本文主要讲解C++中的异常处理. 一、异常的语法格式 在C++中,异常的抛出和处理主要使用了以下三个关键字:try、 throw 、 catch.其格式如下: 当我们在程序中想抛出一个异常时,可以这样: 当我们想使用这个函数时,需要在函数外部进行异常的捕获: 如果 阅读全文
posted @ 2017-04-20 17:09 C/C++专题 阅读(10284) 评论(3) 推荐(0)
摘要:人的一生会遇到很多大起大落,尤其是程序员. 程序员写好的程序,论其消亡形式无非三种:无疾而终、自杀、他杀. 当然作为一名程序员,最乐意看到自己写的程序能够无疾而终,因此尽快的学习异常处理机制是非常重要的! 使自己的程序在遇到错误时能够克服错误,更健壮,而不是遇到错误就愤愤自杀. 因此,在简述C++的 阅读全文
posted @ 2017-04-19 17:49 C/C++专题 阅读(3865) 评论(1) 推荐(0)
摘要:1.模板技术是泛型编程的基础.(【C++】模板简述(一):模板的引入) 2.模板被编译两次,因而给分离编译造成一些麻烦.(【C++】模板简述(二):函数模板、【C++】模板简述(四):模板为什么不支持分离编译?) 3.在模板的参数推演中,编译器根据不同的类型,生成不同的实例代码,而不会进行转型.编译 阅读全文
posted @ 2017-04-18 19:32 C/C++专题 阅读(332) 评论(0) 推荐(1)
摘要:功能 类型萃取,在STL中用到的比较多,用于判断一个变量是否为POD类型. 简述来说可以用来判断出某个变量是内置类型还是自定义类型. 通过类型萃取,萃取到变量类型,对不同变量进行不同处理,可以提升程序效率. 应用场景 比如我们实现顺序表,在对顺序表进行扩容时,就靠重新开辟内存、拷贝对象. 拷贝对象时 阅读全文
posted @ 2017-04-18 19:20 C/C++专题 阅读(4368) 评论(0) 推荐(2)
摘要:上文简述了类模板相关功能,本文主要简述为什么模板不支持分离编译? 在C++中,为了一个项目的规范,我们通常把代码归为三类:声明文件、实现文件、测试文件. 比如,我要用C++实现一个链表,那么就会创建这3个文件: LinkList.h //链表的相关声明 LinkList.cpp //链表的实现代码 阅读全文
posted @ 2017-04-18 18:35 C/C++专题 阅读(890) 评论(0) 推荐(1)
摘要:上文简述了C++模板中的函数模板的格式、实例、形参、重载、特化及参数推演,本文主要介绍类模板. 一、类模板格式 类模板也是C++中模板的一种,其格式如下: 例如:我个人模拟实现的Vector的声明 二、模板类的实例化 只要有不同的类型,编译器就会实例化出一个对应的类,这点与函数模板非常相似.例如: 阅读全文
posted @ 2017-04-18 18:09 C/C++专题 阅读(4687) 评论(0) 推荐(1)
摘要:我们上文讲了,模板的引入,我们发现在某种特殊的情况下,必须得通过模板才能完美的解决问题. 本文就来简述一下函数模板的基本使用. 一、函数模板格式 二、函数模板的实例 注意:模板本身并不是函数或类,它只是一个泛型的代码. 编译器在通过模板来生成特定类型的代码这一过程称之为:模板的实例化. 因此,模板被 阅读全文
posted @ 2017-04-08 11:02 C/C++专题 阅读(841) 评论(0) 推荐(0)
摘要:我们在介绍模板之前,首先想象有这么一个场景: 我们需要通过C++写出一个通用的加法程序,那么有如下几种方法: 方法一:C++的函数重载 通过以上实例,我们发现用C++重载有以下缺陷: 1.每出现一个新类型,我们都必须添加一份新代码. 2.如果函数只是返回值的类型不同,那么函数重载就无法实现.(例如: 阅读全文
posted @ 2017-04-08 09:32 C/C++专题 阅读(629) 评论(0) 推荐(0)
摘要:本文我们主要来总结一下前文介绍过的智能指针相关原理及实现,顺便补充一下前文未提到的shared_ptr删除器部分的内容. 总结: 1.智能指针,通过RAII机制,构造对象时完成资源的初始化,析构对象时,对资源进行清理和汕尾. 2.auto_ptr,防止拷贝/赋值对象后,析构时多次delete对象导致 阅读全文
posted @ 2017-04-03 17:05 C/C++专题 阅读(443) 评论(0) 推荐(0)
摘要:总结一下前文内容: 1.智能指针通过RAII方法来管理指针:构造对象时,完成资源初始化;析构对象时,对资源进行清理及汕尾. 2.auto_ptr,通过“转移所有权”来防止析构一块内存多次.(如何转移?详情看第二篇文章) 3.scoped_ptr,不“转移所有权”而是禁止拷贝/赋值对象.(C++如何禁 阅读全文
posted @ 2017-04-03 11:50 C/C++专题 阅读(3726) 评论(0) 推荐(0)
摘要:在开始本文内容之前,我们再来总结一下,前文内容: 1.智能指针采用RAII机制,在构造对象时进行资源的初始化,析构对象时进行资源的清理及汕尾. 2.auto_ptr防止拷贝后析构释放同一块内存,采用"转移所有权"的方法.(实际开发中auto_ptr并不实用) 3.scoped_ptr与auto_pt 阅读全文
posted @ 2017-04-03 10:56 C/C++专题 阅读(888) 评论(0) 推荐(0)
摘要:在介绍scoped_ptr之前,我们先回顾一下前两篇文章的内容. 首先,智能指针采用RAII机制,通过对象来管理指针,构造对象时,完成资源的初始化;析构对象时,对资源进行清理及汕尾. auto_ptr,通过转移管理权来完成对象的拷贝与赋值,在实际开发中并不实用. 回顾完智能指针的背景及auto_pt 阅读全文
posted @ 2017-04-01 22:09 C/C++专题 阅读(5296) 评论(1) 推荐(0)