![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
现代C++
或许 没有
这个作者很懒,什么都没留下…
展开
-
08-敲开泛型编程的大门
目录前言泛型编程C++模版模版定义实例化模版特化模版动态多态和静态多态总结前言C++原来的名字叫做C with classes(即带有类的C语言)。而类具有的一大特点就是存在运行期多态,那么我们就会考虑一个问题,在C++的编译期可不可以实现多态呢? 其实是可以的,在前面讲过的auto中就运用了编译期的多态的特性。比如这个例子:auto i = 5;在这个例子里面,i的类型在编译期就已经确定了,...原创 2020-05-08 15:52:57 · 123 阅读 · 0 评论 -
07-困惑多年的难题,是否返回对象
目录前言旧式解决办法返回对象总结前言写了这么十来篇博客,我发现我的写作风格都极其相似。好像还停留在高考那种应试要求的“八股文”一样。前言,提出问题,解决问题,发散思维,总结 可能这种方式更加符合的我思考方式吧,如果有什么更好的推荐方式,可以评论区留言。谢谢大家!!在《effective C++》的条款20中,推荐使用const-by-reference-to-const替代pass-by-va...原创 2020-05-06 15:16:41 · 163 阅读 · 0 评论 -
06-现代C++有哪些新特性
目录前言高级for类型推导autodecltypedecltype(auto)大括号妙用列表初始化统一初始化类成员默认初始化静态断言特种成员函数override和final总结前言C++在1978年就由Bjame Sgoustrup在Bell实验室发明出来,但是第一次标准化已经是十多年后的1994年了。发布了第一个国际通用标准C++,C++98。此后十多年里没有更新,直到2011年发布了C++...原创 2020-05-05 15:32:39 · 391 阅读 · 0 评论 -
05-令人头大的异常
目录前言没有异常的世界安全机制异常使用异常的弊病完美使用异常例子Q&A总结前言要正确了解异常,必须知道异常到底是什么东西,这个东西在编程实践中起到什么作用。异常情形是指阻止当前方法或作用域继续执行的问题。你所能做的就是从当前环境跳出,并且把问题提交给上一级环境,这就是抛出异常时所发生的事情。而且很多程序需要长期执行,比如服务器。不能因为一个网络连接失败就将这个程序当掉。应该交给上级环境...原创 2020-04-27 23:07:52 · 167 阅读 · 0 评论 -
04-众多C++容器如何挑选?
目录前言无规律容器vectordequelist&forward_listqueue&stack有规律容器priority_queue有序关联容器无序关联容器array选择方法总结前言相信大家在学习C++过程中都会学习STL容器,至于容器实现的原理可以去看侯捷老师《STL源码剖析》。网上也有很多资源,为了支持正版这里就不放出来了,有需要可以评论区留言。STL容器的实现很复杂但是...原创 2020-04-21 20:18:00 · 432 阅读 · 0 评论 -
03-左值右值傻傻分不清
目录前言分类右值作为函数形参生命周期引用坍缩Q&A总结前言C++11比起C++98一个重要的提升就是引入了移动语义。这一个重要的提升为后面很多容器的优化都奠定了基础。但是引入移动语义,也带来了另外一个左值右值的概念。从字面上可以理解为在等号左边的就是左值,在等号右边的就是右值。但是至于这个左值和右值各自又有什么性质,有哪些特点这都不得而知。今天我们就来掰扯掰扯这个左值和右值的问题。分...原创 2020-04-20 22:42:59 · 254 阅读 · 2 评论 -
02-实现C++智能指针
目录前言unique_ptr实现模板化重载操作符swap函数引用计数前言在第一部分内容中,可以看到如何管理资源。C++祭出的方法是RAII,用资源类来进行管理。但是如何实现这个资源类,却又摆在了面前。在C++原生的库里面支持智能指针auto_ptr,但是这个类在C++17被删除了,取而代之的是shared_ptr和unique_ptr这两个从名字上就可以看出来,一个是和原来auto_ptr类似...原创 2020-04-19 16:35:32 · 154 阅读 · 0 评论 -
01-C++如何管理资源
目录内存分类栈(heap)栈区(stack)RAIIQ&A总结内存分类在这里面我们通常会处理到地方是栈区和堆区。栈(heap)是指动态分配内存的区域,这里的内存分配后需要手工释放。这就是栈区存在的一个隐患。而对于这部分内存的分配也有两种方式,new和delete以及malloc和free。通常我们在C语言中采用malloc和free。但是这二者在分配的内存上区分为:new和d...原创 2020-04-17 18:03:26 · 147 阅读 · 0 评论