2014年11月14日

自己动手实现STL:前言

摘要: 一、前言 最近,刚看完《STL源码剖析》,深深被实现STL库的那些的大牛们所折服。同时又感觉自己与大牛们差距之大,便萌生深入学习之意。如果仅仅只是看看《STL源码剖析》的话,又恐对STL的理解又不是非常深刻。故,打算自己动手也去实现下STL的关键组件,又思及自己水平有限,所以,就按照其源码自己重新... 阅读全文

posted @ 2014-11-14 14:58 冰雨纷飞 阅读(949) 评论(0) 推荐(0) 编辑

2014年10月31日

Effective C++学习笔记 条款07:为多态基类声明virtual析构函数

摘要: 一、C++明确指出:当derived class对象经由一个base class指针被删除,而该base class带着一个non-virtual析构函数,其结果未定义——实际执行时通常发生的是对象的derived成分没有被销毁!(注:使用基类引用派生类的方式使用多态,由于引用只是对原对象的一个引用... 阅读全文

posted @ 2014-10-31 00:37 冰雨纷飞 阅读(414) 评论(0) 推荐(0) 编辑

Effective C++学习笔记 条款06:如不想使用编译器自动生成的函数,就该明确拒绝

摘要: 一、为驳回编译器自动提供的机能,可将相应成员函数声明为private并且不予实现。(如果你仅仅是自己不实现的话,编译器会帮你实现) 如:class A{ public: A(const string& name):m_name(name) {} private: ... 阅读全文

posted @ 2014-10-31 00:13 冰雨纷飞 阅读(209) 评论(0) 推荐(0) 编辑

Effective C++学习笔记 条款05:了解C++默默编写并调用的哪些函数

摘要: 一、如果用户没有提供构造函数、copy构造函数、copy assignment操作符和析构函数,当且仅当这些函数被需要的时候,编译器才会帮你创建出来。编译器生成的这些函数都是public且inline。 当你写下这样一个类的时候:class Empty {}; 如果上述的函数是被需要的话,那么编... 阅读全文

posted @ 2014-10-31 00:04 冰雨纷飞 阅读(183) 评论(0) 推荐(0) 编辑

2014年10月30日

Effective C++学习笔记 条款04:确定对象被使用前已先被初始化

摘要: 一、为内置类型对象进行手工初始化,因为C++不保证初始化它们。二、对象初始化数据成员是在进入构造函数用户编写代码前完成,要想对数据成员指定初始化值,那就必须使用初始化列表。 1 class A 2 { 3 public: 4 A(const string &str) 5 { 6 ... 阅读全文

posted @ 2014-10-30 23:49 冰雨纷飞 阅读(158) 评论(0) 推荐(0) 编辑

Effective C++学习笔记 条款02:尽量以const,enum,inline替换 #define

摘要: 尽量使用const替换 #define定义常量的原因:#define 不被视为语言的一部分宏定义的常量,预处理器只是盲目的将宏名称替换为其的常量值,导致目标码中出现多分对应的常量,而const定义的常量,会进入记号表,使用到该常量的地方使用的同一份,使目标码的量更小点;const可以在类中定义一个c... 阅读全文

posted @ 2014-10-30 22:50 冰雨纷飞 阅读(151) 评论(0) 推荐(0) 编辑

2014年10月22日

SGI STL红黑树中迭代器的边界值分析

摘要: 前言 一段程序最容易出错的就是在判断或者是情况分类的边界地方,所以,应该对于许多判断或者是情况分类的边界要格外的注意。下面,就分析下STL中红黑树的迭代器的各种边界情况。(注意:分析中STL使用的版本是SGI STL,由于不同的版本的STL具体实现细节不一样,所以可能会有出入)。一、begin()... 阅读全文

posted @ 2014-10-22 09:59 冰雨纷飞 阅读(780) 评论(0) 推荐(0) 编辑

2014年10月21日

STL源码中map和set中key值不能修改的实现

摘要: 前言 最近正好刚刚看完,《stl源码剖析》这本书的map和set的源码部分。但是看完之后又突然发现,之前怎么没有注意到map和set容器中key不能修改是怎么实现的。故,特此整理如下。set容器中的实现 set中具体怎么实现的,看源码是最清楚的,下面就是set的部分源码: 1 class set... 阅读全文

posted @ 2014-10-21 09:40 冰雨纷飞 阅读(1086) 评论(0) 推荐(0) 编辑

导航