摘要: 本文主要简述在C++中四种类型转换的方式:static_cast、reniterpret_cast、const_cast和dynamic_cast. 在介绍C++类型转换方式之前,我们先来看看C语言的类型转换. 在C语言中,类型转换非常容易,我们想将int a转换为char a只需:(char)a即 阅读全文
posted @ 2017-05-04 11:18 C/C++专题 阅读(1386) 评论(0) 推荐(0) 编辑
摘要: C++异常的使用,我相信在上文总结的已经比较完整了,本文主要对C++异常这块进行额外的补充. 即使C++将异常纳入标准已经很多年了,但是直到现在都能看到很多坚持不显式使用异常.(包括本人在内,在写的代码中很少使用异常). 在评论异常之前,首先引入google C++ 编码规范,我们先来看看谷歌怎么看 阅读全文
posted @ 2017-05-04 10:31 C/C++专题 阅读(1456) 评论(0) 推荐(0) 编辑
摘要: 上文简述了在C语言中异常的处理机制,本文主要讲解C++中的异常处理. 一、异常的语法格式 在C++中,异常的抛出和处理主要使用了以下三个关键字:try、 throw 、 catch.其格式如下: 当我们在程序中想抛出一个异常时,可以这样: 当我们想使用这个函数时,需要在函数外部进行异常的捕获: 如果 阅读全文
posted @ 2017-04-20 17:09 C/C++专题 阅读(10160) 评论(3) 推荐(0) 编辑
摘要: 人的一生会遇到很多大起大落,尤其是程序员. 程序员写好的程序,论其消亡形式无非三种:无疾而终、自杀、他杀. 当然作为一名程序员,最乐意看到自己写的程序能够无疾而终,因此尽快的学习异常处理机制是非常重要的! 使自己的程序在遇到错误时能够克服错误,更健壮,而不是遇到错误就愤愤自杀. 因此,在简述C++的 阅读全文
posted @ 2017-04-19 17:49 C/C++专题 阅读(3794) 评论(1) 推荐(0) 编辑
摘要: 1.模板技术是泛型编程的基础.(【C++】模板简述(一):模板的引入) 2.模板被编译两次,因而给分离编译造成一些麻烦.(【C++】模板简述(二):函数模板、【C++】模板简述(四):模板为什么不支持分离编译?) 3.在模板的参数推演中,编译器根据不同的类型,生成不同的实例代码,而不会进行转型.编译 阅读全文
posted @ 2017-04-18 19:32 C/C++专题 阅读(316) 评论(0) 推荐(1) 编辑
摘要: 功能 类型萃取,在STL中用到的比较多,用于判断一个变量是否为POD类型. 简述来说可以用来判断出某个变量是内置类型还是自定义类型. 通过类型萃取,萃取到变量类型,对不同变量进行不同处理,可以提升程序效率. 应用场景 比如我们实现顺序表,在对顺序表进行扩容时,就靠重新开辟内存、拷贝对象. 拷贝对象时 阅读全文
posted @ 2017-04-18 19:20 C/C++专题 阅读(4101) 评论(0) 推荐(2) 编辑
摘要: 上文简述了类模板相关功能,本文主要简述为什么模板不支持分离编译? 在C++中,为了一个项目的规范,我们通常把代码归为三类:声明文件、实现文件、测试文件. 比如,我要用C++实现一个链表,那么就会创建这3个文件: LinkList.h //链表的相关声明 LinkList.cpp //链表的实现代码 阅读全文
posted @ 2017-04-18 18:35 C/C++专题 阅读(860) 评论(0) 推荐(1) 编辑
摘要: 上文简述了C++模板中的函数模板的格式、实例、形参、重载、特化及参数推演,本文主要介绍类模板. 一、类模板格式 类模板也是C++中模板的一种,其格式如下: 例如:我个人模拟实现的Vector的声明 二、模板类的实例化 只要有不同的类型,编译器就会实例化出一个对应的类,这点与函数模板非常相似.例如: 阅读全文
posted @ 2017-04-18 18:09 C/C++专题 阅读(4620) 评论(0) 推荐(1) 编辑
摘要: 我们上文讲了,模板的引入,我们发现在某种特殊的情况下,必须得通过模板才能完美的解决问题. 本文就来简述一下函数模板的基本使用. 一、函数模板格式 二、函数模板的实例 注意:模板本身并不是函数或类,它只是一个泛型的代码. 编译器在通过模板来生成特定类型的代码这一过程称之为:模板的实例化. 因此,模板被 阅读全文
posted @ 2017-04-08 11:02 C/C++专题 阅读(814) 评论(0) 推荐(0) 编辑
摘要: 我们在介绍模板之前,首先想象有这么一个场景: 我们需要通过C++写出一个通用的加法程序,那么有如下几种方法: 方法一:C++的函数重载 通过以上实例,我们发现用C++重载有以下缺陷: 1.每出现一个新类型,我们都必须添加一份新代码. 2.如果函数只是返回值的类型不同,那么函数重载就无法实现.(例如: 阅读全文
posted @ 2017-04-08 09:32 C/C++专题 阅读(598) 评论(0) 推荐(0) 编辑