c++
Roccosis
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Name Mangling in C++
摘要:详细介绍了C++中的Name Mangling的原理和gcc中对应的实现,通过程序代码和nm C++filt等工具来验证这些原理。对于详细了解程序的链接过程有一定的帮助。 Name Mangling概述 大型程序是通过多个模块构建而成,模块之间的关系由makefile来描述。对于由C++语言编制的大型程序而言,也是符合这个规则。 程序的构建过程一般为:各个源文件分别编译,形成目标文件。转载 2017-02-05 17:08:52 · 370 阅读 · 0 评论 -
boolan——c++学习笔记之设计模式一
什么是设计模式 “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。 ——Christopher Alexander 软件设计复杂的根本原因 变化 客户需求的变化 技术平台的变化 开发团队的变化 市场环境的变化 。。。 如何解决复杂性? 分解 抽象原创 2017-04-05 22:55:06 · 424 阅读 · 0 评论 -
boolan——c++学习笔记之设计模式二
对象创建模式 一、工厂方法(Factory Method) 二、抽象工厂(Abstract Factory)原创 2017-04-13 21:52:15 · 368 阅读 · 0 评论 -
boolan——c++学习笔记之STL哈希表探究
一、简介 c++STL容器unordered_set、unordered_map、unordered_multiset、unordered_multimap内部是用哈希表实现的,以下将详细介绍c++STL哈希表的实现。 二、哈希表排列结构 1、哈希表buckets个数大于元素个数,当元素个数大于等于buckets个数时,哈希表将rebuild,扩大buckets个数,GNU C2.9原创 2017-03-15 22:08:14 · 490 阅读 · 0 评论 -
boolan——c++学习笔记之move
前言 C++11提供了move语义,可以提高大大STL的效率。 一、move对STL一些容器操作效率的提高 下面几个图中分别对vector,deque,multiset进行拷贝构造和move构造的效率对比,可以看到move构造比拷贝构造快很多。 二、一个拥有move特性的class MyString 类中有比不同string类多了一个move构造函原创 2017-03-30 21:59:35 · 903 阅读 · 0 评论 -
boolan——c++学习笔记之STL迭代器分类
前言 c++ STL提供了多种迭代器种类,并且居然有继承关系,它用于告诉算法对于指定容器作指定的迭代器操作。 一、cppreference中对Iterator category的描述 二、迭代器支持的操作以及各容器所含迭代器种类 1、各类迭代器支持的操作 Input iterators : ==, !=, ++, *, ->原创 2017-03-23 13:06:45 · 401 阅读 · 0 评论 -
boolan——c++学习笔记之容器探索
一、各类容器创建空对象时所占内存 二、迭代器 迭代器是算法实现容器的一个桥梁,类似于一个指针,可对容器的元素作指针的操作,比如“++”,“--”,“*”,“->”等,每个容器都有实现自己的迭代器。 三、迭代器的萃取机 1、迭代器内部为关联类型之上加了一个中间层——iterator traits(迭代器萃取机),用以区分传入的是类的迭代器还是单纯的类型原创 2017-03-09 13:17:52 · 405 阅读 · 0 评论 -
boolan——c++学习笔记之容器
一、各容器内存存储结构 二、各容器特征描述 (1)array 创建:固定长度; 存储方式:连续存储数组; 访问元素:可随机访问; 增减元素:不支持; (2) vector 创建:不定长度,单向增长; 存储方式:连续存储数组,增加元素时内存动态增加大于元素大小; 访问元素:可随机访问;原创 2017-03-02 14:24:43 · 557 阅读 · 0 评论 -
boolan——c++学习笔记之c++转换函数
1、conversion function(转换函数) 条件: 有一个基本类型转换函数 用途:把对象转成基本数据类型 例子: class Fraction { public: explicit Fraction(int num, int den=1) : m_numerator(num), m_denominator(den) { cout operator doub原创 2017-02-21 20:31:31 · 366 阅读 · 0 评论 -
boolan——c++学习笔记之STL简介
一、STL简介 (1)六大组件: (2)六大组件之间关系: 分配器给容器分配内存; 算法实现容器; 由迭代器做为算法和容器的桥梁; 仿函数为算法提供功能; 适配器对容器、仿函数、迭代器做接口转换; (3)代码示例(包含六大组件)原创 2017-03-02 12:43:41 · 385 阅读 · 0 评论 -
boolan——c++学习笔记之pointer-like classes
1、pointer-like classes,智能指针 例子:shared_ptr 2、pointer-like classes,迭代器 例子:iterator原创 2017-02-21 21:27:25 · 386 阅读 · 0 评论 -
boolan——c++学习笔记之内存分配
1、动态分配内存new new过程按以下过程实现: 2、动态内存释放delete delete过程按以下过程实现: 3、动态分配对象内存块 以下内存块为VC 环境, 红色区域表示cookie字节,用于计算内存总量用量; 灰色区域表示debug字节; 绿色区域表示数据; 青色区域表示pad,附加字节,用于凑足16字节倍数; 说明:一个矩形框4个原创 2017-01-21 21:20:13 · 391 阅读 · 0 评论 -
boolan——c++学习笔记之类关系
类的的三种关系:1)继承(inheritance)2)复合(composition)3)委托(delegation) 1)继承(inheritance) 1、继承关系表现 2、继承关系的构造和析构 2)复合(composition) 1、复合关系表现及应用场景(adapter) 2、复合的构造和析构 3)委托(delegation) 1、委托原创 2017-02-08 21:02:22 · 475 阅读 · 0 评论 -
boolan——c++学习笔记之多态对象模型
c++用虚函数、虚指针、虚表的手段来实现多态,其中虚函数需要程序员手动书写,虚指针和虚表由构造对象的时候在内存中生成。 下图为对象多态模型: 有A、B、C三个对象,关系为B继承A、C继承B,并且每个类中有虚函数和非虚函数。 (1)生成对象时如果类中有虚函数,则会在内存中生成一个虚指针,指向一个虚函数表; (2)如果父类有虚函数,子类对象继承父类的虚指针,对象中虚指针原创 2017-02-16 17:36:06 · 336 阅读 · 0 评论 -
boolan——c++学习笔记1
1、头文件防御式定义; 2、构造函数定义注意点,参数初始化默认值,初始化列表; 3、函数参数尽量传引用、返回值返回引用需要视情况而定,如局部变量一般不返回引用; 4、变量,函数内不改变成员变量,定义成const; 5、友元函数,在类中把全局函数声明为友元,改全局函数可以直接访问类成员;友元函数在类中声明只是定义访问权限,需要在类外面再次声明; 6、短小、快速执行的函数尽量定义为inlin原创 2017-01-16 21:59:02 · 289 阅读 · 0 评论 -
boolan——c++学习笔记之设计模式三
c++设计模式总结 一、设计模式的设计目标 二、面向对象的手段 三、八大设计原则 设计模式基本上都是依据八大原则设计的。 四、重构技法 设计模式时的一些常用技法。 五、模式分类 红色圈内的几个模式现在在c++设计中已经不常用,有些由于现在c++已经有更好的方式解决问题,有些使用比较局限。 六、c++对象模型 所有设原创 2017-04-18 22:43:15 · 368 阅读 · 0 评论
分享