C++内置的数组支持容器的机制,可是它不支持容器抽象的语义。要解决此问题我们自己实现这种类。在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。标准库vector类型使用须要的头文件:#include 。vector 是一个类模板。不是一种数据类型,vector是一种数据类型。V...
分类:
编程语言 时间:
2014-10-27 19:23:24
阅读次数:
250
之前文章中实现的写时复制,句柄类中引用计数和T类型指针是分开的,这里换一种方式来处理,将引用计数和T类型指针视为一个整体,当做句柄类模板参数。先对上节中的引用计数进行改造: 1 class CUseCount 2 { 3 public: 4 CUseCount(); 5 ...
分类:
其他好文 时间:
2014-10-22 19:55:51
阅读次数:
241
STL源码之实现一个简易的Vector容器
这里需要的基础知识主要是类模板和函数模板,以及一个C++内存分配的技术allocator类,它提供可感知类型的内存分配,这个类支持一个抽象接口,以分配内存并随后使用该内存保存对象。
使用allocator类,首先应用allocator类建立一个allocator对象,然后使用该对象你可以分配内存,释放内存,构造你...
分类:
其他好文 时间:
2014-10-22 18:16:27
阅读次数:
171
C++内置的数组支持容器的机制,可是它不支持容器抽象的语义。要解决此问题我们自己实现这种类。在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。标准库vector类型使用须要的头文件:#include 。vector 是一个类模板。不是一种数据类型,vector是一种数据类型。V...
分类:
编程语言 时间:
2014-10-22 12:34:12
阅读次数:
134
这一讲跟大家介绍下类模板。类模板的指导思想跟函数模板类似。 代码复用是面向对象设计中的重要的软件开发思想,对于软件开发效率很是关键。怎样做好代码复用呢?越是通用的代码越好复用,将类型作为参数,这种程序设计类型就是参数化程序设计。模板就是C++进行参数化设计的工具。利用模板我们可以使用同一段程序处.....
分类:
编程语言 时间:
2014-10-22 12:16:54
阅读次数:
172
模板模式中,父类规定好了一些算法的流程,并且空出一些步骤(方法)留给子类填充Java的数组类中静态方法sort()就是一个模板,它空出了一个compareTo的方法,留给子类填充,用来规定什么是大于、等于和小于package com.example.template;public class Duc...
分类:
其他好文 时间:
2014-10-15 17:47:51
阅读次数:
100
1、function/bind简介function是一种类模板,重载了operator()函数调用操作符,所以每一个function类的对象都是一个函数对象。bind是一种函数适配器,可以改变参数的个数、顺序。2、相关代码 1 #include 2 #include 3 #include 4 ...
分类:
其他好文 时间:
2014-10-11 04:30:04
阅读次数:
292
C++11中增加了一些新的模板,今天我们简单介绍function模板。头文件:function是一个模板,当创建一个具体的function类型时,我们必须像其他类模板一样提供额外的信息。所谓的额外信息是指function类型能够表示的对象的调用形式。例如vector,我们在使用vector的时候必须...
分类:
编程语言 时间:
2014-10-11 01:28:44
阅读次数:
348
function是一种类模板,重载了operator()函数调用操作符,所以每一个function类的对象都是一个函数对象。我们可以这样使用function模板:#include #include #include #include using namespace std;void foo(cons...
分类:
编程语言 时间:
2014-10-10 14:37:10
阅读次数:
378
设计模式之6大原则一、设计模式6大原则名称解释0、单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。一、"开放-封闭"原则(OCP)在软件设计模式中,这种不能修改,但可以扩展的思想也是最重要的一种设计原则。即软件实体(类、模板、函数等等)应该可以扩展,但是不可修改。【通俗】:设计的时...
分类:
其他好文 时间:
2014-10-09 13:56:13
阅读次数:
202