C++拾遗
弗莱德笔记
这个作者很懒,什么都没留下…
展开
-
【C++11新特性】 auto关键字
熟悉脚本语言的人都知道,很多脚本语言都引入了“类型自动推断”技术:比如python,可以直接声明变量,在运行时进行类型检查。随着C++11标准的发布,C++语言也引入了类型自动推断的功能,这就是我们今天要介绍的auto关键字。C++是一种强类型语言,声明变量时必须明确指出其类型。但是,在实践中,优势我们很难推断出某个表达式的值的类型,尤其是随着模板类型的出现,要想弄明白某些复杂标萨是的返回类型就变得原创 2016-01-06 16:20:17 · 9504 阅读 · 1 评论 -
【C++拾遗】 C++函数重载、重写、重定义的区别
函数重载(overload)函数重载是指在一个类中声明多个名称相同但参数列表不同的函数,这些的参数可能个数或顺序,类型不同,但是不能靠返回类型来判断。特征是:(1)相同的范围(在同一个作用域中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。(5)返回值可以不同;函数重写(也称为覆盖 override)函数重写是指子类重新定义基类的虚原创 2015-09-16 17:00:55 · 9621 阅读 · 0 评论 -
【C++拾遗】 C++虚函数实现原理
原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/50454819我们知道,与C语言相比,C++在布局和存取时间上的额外开销主要是由虚函数(virtual function)机制和虚继承(virtual base class)机制引起的。在前面一篇文章中,我们从内存布局的角度入手,分析了虚继承的实现原理,传送门:从内存布局看C++虚继原创 2016-01-04 15:47:39 · 7240 阅读 · 6 评论 -
【C++11新特性】 C++11智能指针之unique_ptr
在前面一篇文章中,我们了解了C++11中引入的智能指针之一shared_ptr,今天,我们来介绍一下另一种智能指针unique_ptr。unique_ptr介绍unique是独特的、唯一的意思,故名思议,unique_ptr可以“独占”地拥有它所指向的对象,它提供一种严格意义上的所有权。原创 2016-02-28 15:20:04 · 6551 阅读 · 1 评论 -
【C++11新特性】 C++11智能指针之shared_ptr
C++中的智能指针首先出现在“准”标准库boost中。随着使用的人越来越多,为了让开发人员更方便、更安全的使用动态内存,C++11也引入了智能指针来管理动态对象。在新标准中,主要提供了shared_ptr、unique_ptr、weak_ptr三种不同类型的智能指针。接下来的几篇文章,我们就来总结一下这些智能指针的使用。今天,我们先来看看shared_ptr智能指针。原创 2016-02-26 15:21:02 · 30934 阅读 · 1 评论 -
【C++11新特性】 Lambda表达式
C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。原创 2016-02-22 14:03:27 · 5293 阅读 · 0 评论 -
【C++11新特性】 C++11智能指针之weak_ptr
如题,我们今天要讲的是C++11引入的三种智能指针中的最后一个:weak_ptr。在学习weak_ptr之前最好对shared_ptr有所了解。如果你还不知道shared_ptr是何物,可以看看我的另一篇文章【C++11新特性】 C++11智能指针之shared_ptr。原创 2016-03-01 15:42:08 · 27348 阅读 · 8 评论 -
【C++11新特性】 nullptr关键字
熟悉C++的童鞋都知道,为了避免“野指针”(即指针咋爱首次使用之前没有进行初始化)的出现,我们声明一个指针后最好马上对其进行初始化操作。如果暂时不明确该指针指向哪个变量,则需要赋予NULL值。除了NULL之外,C++11新标准中又引入了nullptr来声明一个“空指针”,这样,我们就有下面三种方法来获取一个“空指针”:如下:int *p1 = NULL; // 需要引入cstdlib头文件int原创 2016-01-07 19:51:05 · 10853 阅读 · 1 评论 -
【C++拾遗】 从内存布局看C++虚继承的实现原理
准备工作1、VS2012使用命令行选项查看对象的内存布局微软的Visual Studio提供给用户显示C++对象在内存中的布局的选项:/d1reportSingleClassLayout。使用方法很简单,直接在[工具(T)]选项下找到“Visual Studio命令提示(C)”后点击即可。切换到cpp文件所在目录下输入如下的命令即可 c1 [filename].cpp原创 2015-08-27 16:49:10 · 20207 阅读 · 25 评论