01 2016 档案

摘要:0.前言 本文简单地总结了STL的顺序容器的知识点。文中并不涉及具体的实现技巧,对于细节的东西也没有提及。一来不同的标准库有着不同的实现,二来关于具体实现《STL源码剖析》已经展示得全面细致。所以本文仅仅是对容器基础知识的归纳。至于容器提供的接口与使用实例,建议查取官方文档。文章难免有错漏,希望指出 阅读全文
posted @ 2016-01-23 11:57 melonstreet 阅读(11438) 评论(2) 推荐(6) 编辑
摘要:前言 几个星期前去面试C++研发的实习岗位,面试官问了个问题: new与malloc有什么区别? 这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进 阅读全文
posted @ 2016-01-19 01:27 melonstreet 阅读(58119) 评论(13) 推荐(51) 编辑
摘要:C++异常机制概述 异常处理是C++的一项语言机制,用于在程序中处理异常事件。异常事件在C++中表示为 异常对象 。异常事件发生时,程序使用throw关键字抛出异常表达式,抛出点称为异常出现点,由操作系统为程序设置当前异常对象,然后执行程序的当前异常处理代码块,在包含了异常出现点的最内层的 try 阅读全文
posted @ 2016-01-17 11:19 melonstreet 阅读(24872) 评论(4) 推荐(15) 编辑
摘要:前言 今日的C++不再是个单纯的“带类的C”语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C++发展中最为出彩的那部分。在面向对象C++编程中,多态是OO三大特性之一,这种多态称为运行期多态,也称为动态多态;在泛型编程中,多态基于template(模板)的具现化... 阅读全文
posted @ 2016-01-15 11:23 melonstreet 阅读(24503) 评论(8) 推荐(13) 编辑
摘要:效率问题 对于用户自定义的类型来说,传引用一般要比传值高效。传引用不需要经过对象过程,在《Effective C++》中作者举了个例子: 此刻我们拥有一个派生类对象derive 。对derive传值的结果是共需要进行六次的构造函数的调用:对象本身的构造函数,对象内部数据成员string的构造... 阅读全文
posted @ 2016-01-14 09:28 melonstreet 阅读(2630) 评论(5) 推荐(4) 编辑
摘要:我们为什么需要智能指针 所谓资源就是,一旦用了它,将来必须还给系统。C++中内存资源的动态分配经由new与delete实现。问题在于,无论是有意无意,我们有时候总会忘记释放内存中的资源。例如delete语句出现在某个循环语句中,而我们的continue或者break却跳过了它的执行;或者是在程序中... 阅读全文
posted @ 2016-01-13 22:45 melonstreet 阅读(1749) 评论(2) 推荐(5) 编辑
摘要:假设我们有一个基类A,很不幸的,A的析构函数是一个non virtual。同时我们有一个派生类B,它派生自A。 我们定义了一个A类型指针,它指向的实际对象是B: 然后在程序的某处,我们不再需要B了,我们将指针ptr delete掉: 注意new永远要和delete成队出现,除非你使用智能指针... 阅读全文
posted @ 2016-01-13 01:21 melonstreet 阅读(1751) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示