本博文会持续更新,记录C++少为人知的特点可作为笔记温习之用,先罗列出关键词和简要介绍,再给出诸多参考链接便于进一步探求。
1、RAII机制
Resource Acquisition Is Initialization:资源获取即初始化,构造函数里申请资源,析构函数里释放资源。应用如智能指针、lambda表达式。核心思想是将资源或者状态与对象的生命周期绑定,通过C++的语言机制,实现资源和状态的安全管理。理解和使用RAII能使软件设计更清晰,代码更健壮。有安全、简洁、实时的特点。
【参考链接】
http://ju.outofmemory.cn/entry/56048
https://www.cnblogs.com/jiangbin/p/6986511.html
2、GC机制
garbage collection:垃圾回收机制,在一个支持垃圾收集的语言中,程序显式地申请内存,但从不需要显式的释放它们。垃圾收集器会定期识别垃圾块,并将垃圾块放回空闲链表中。引用计数是为大多数人所了解,容易联想到的一个GC机制算法。
【参考资料】
https://www.aliyun.com/jiaocheng/551998.html
http://www.hpl.hp.com/personal/Hans_Boehm/gc/ (不少人用这个GC来进行开发)
http://www.devarticles.com/c/a/Cplusplus/A-Simple-Garbage-Collector-for-C-plus-plus/
http://cybertiggyr.com/gene/garbage-collection-cpp/
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm
3、关于=delete和=default
C++ 11中类的四种特殊函数(默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符)的控制。
"=default"函数特性仅适用于类的特殊成员函数,且该特殊成员函数没有默认参数。作用:1. 减轻程序员的编程工作量;2. 获得编译器自动生成的默认特殊成员函数的高的代码执行效率。
“=delete”在函数声明后加上,可将该函数禁用。作用:避免了某些非法的函数调用或者类型转换,从而提高了代码的安全性。
【参考资料】
https://www.ibm.com/developerworks/cn/aix/library/1212_lufang_c11new/index.html 【这篇文很棒】
https://www.cnblogs.com/lsgxeva/p/7787438.html
http://blog.jobbole.com/103669/
……未完待续