摘要:
指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。 数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个是数组指针,哪个是指针数组呢:... 阅读全文
随笔分类 - C++相关
二维数组简介与使用
2015-03-08 14:58 by itwolf, 64097 阅读, 收藏,
摘要:
前言本文将探讨一下关于二维数组在内存中的存储和二维数组在参数传递时的使用。一、二维数组在内存中的存储如果定义一个这样的二维数组int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};则其在内存中的表示可能下面这样的。由上图可以看出,在内存中二维数组是按照... 阅读全文
访问者模式
2015-02-01 17:52 by itwolf, 467 阅读, 收藏,
摘要:
一、简介1、访问者模式表示一个作用于某对象结构中各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。2、模式中的成员角色访问者(Visitor) :访问者抽象接口,通过visit(Element)方法访问Element(数据结构),完成对Element的操作行为。具体访问者... 阅读全文
解释器模式
2015-02-01 11:36 by itwolf, 245 阅读, 收藏,
摘要:
一、简介1、解释器模式给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。2、类成员(1)AbstractExpression(抽象表达式):声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。(2)TerminalExpression(终结符... 阅读全文
转载:C++ map的基本操作和使用
2015-02-01 10:24 by itwolf, 272 阅读, 收藏,
摘要:
声明:本文转自:http://www.cnblogs.com/hailexuexi/archive/2012/04/10/2440209.html1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实... 阅读全文
享元模式
2015-02-01 10:20 by itwolf, 204 阅读, 收藏,
摘要:
一、简介1、享元模式运用共享技术有效地支持大量细粒度的对象。2、享元模式是为了减少同种类的实例化,以达到节省内存的目的。3、类成员函数抽象享元类(Flyweight)它是所有具体享元类的超类。为这些类规定出需要实现的公共接口,那些需要外蕴状态(Exte的操作可以通过方法的参数传入。抽象享元的接口使得... 阅读全文
中介者模式
2015-02-01 09:41 by itwolf, 198 阅读, 收藏,
摘要:
一、简介1、中介者模式用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示的交互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。2、成员类Mediator:中介者接口。在里面定义了各个同事之间相互交互所需要的方法。ConcreteMediator:具体的中介者实现对象。它需要了解... 阅读全文
职责链模式
2015-01-28 22:23 by itwolf, 205 阅读, 收藏,
摘要:
一、简介1、当客户提交一个请求时,请求沿着链传递直到有一个管理者对象处理它。2、UML3、所属类别:行为型二、程序 1 // 职责链模式.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include 6 #include 7... 阅读全文
命令模式
2015-01-28 21:35 by itwolf, 206 阅读, 收藏,
摘要:
一、简介1、命令模式将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。2、命令模式中的几个角色客户(Client):创建了一个具体命令(ConcreteCommand)对象并确定其接收者。命令(Command):声明了一个给所有具体命... 阅读全文
桥接模式
2015-01-27 14:54 by itwolf, 364 阅读, 收藏,
摘要:
一、概述1、桥接模式将抽象部分与它的实现部分分离,使它们都可以独立的变化。2、在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,桥接模式把这种多维度分离出来,让他们独立变化,减少之间的耦合。感觉桥接模式的结构有点像抽象工厂模式,但桥接模式属于结构型模式,而抽象工厂模式属于创建型模式。... 阅读全文
转载:C++ vector 类学习笔记
2015-01-27 13:25 by itwolf, 306 阅读, 收藏,
摘要:
声明:本文转载自http://blog.csdn.net/whz_zb/article/details/6827999vector简介vector是STL中最常见的容器,它是一种顺序容器,支持随机访问。vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似,不同的地方就是:数组是静态... 阅读全文
转载:C++ list 类学习笔记
2015-01-27 13:22 by itwolf, 339 阅读, 收藏,
摘要:
声明:本文转自http://blog.csdn.net/whz_zb/article/details/6831817双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,li... 阅读全文
C++静态成员变量和静态成员函数小结
2015-01-27 12:53 by itwolf, 276 阅读, 收藏,
摘要:
静态类成员包括静态数据成员和静态函数成员两部分。一 静态数据成员:类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点:1.静态数据成员的... 阅读全文
单例模式
2015-01-27 11:01 by itwolf, 230 阅读, 收藏,
摘要:
一、简介1、单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。2、C++设计一个单例模式的方法如下: (1)构造函数声明为私有; 这样就保证了不能随意构造一个对象。(2) 将拷贝构造函数与等号运算符声明为私有,并不提供他们的实现; 即禁止对象被拷贝。(3) 在类中声明一个静态的全局访问接... 阅读全文
迭代器模式
2015-01-27 09:34 by itwolf, 216 阅读, 收藏,
摘要:
一、简介1、迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。2、类成员(1)Iterator(迭代器)迭代器定义访问和遍历元素的接口(2)ConcreteIterator (具体迭代器)具体迭代器实现迭代器接口对该聚合遍历时跟踪当前位置(3)Aggregate (... 阅读全文
组合模式
2015-01-26 10:08 by itwolf, 253 阅读, 收藏,
摘要:
一、简介1、组合模式将对象组合成树形结构以表示‘部分和整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。2、模式中的几个重要的类Component:组合中的对象声明接口,在适当情况下,实现所有类共有接口的行为。Leaf:叶节点对象,叶节点没有子节点。由于叶节点不能增加分支和树叶... 阅读全文
备忘录模式
2015-01-21 14:54 by itwolf, 179 阅读, 收藏,
摘要:
一、简介1、备忘录 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。2、模式成员(1)Originator(发起人):负责创建一个Memento(备忘录),用以记录当前的状态,并且可以使用备忘录恢复自己的状态。(2)Mement... 阅读全文
适配器模式
2015-01-21 10:07 by itwolf, 179 阅读, 收藏,
摘要:
一、简介1、适配器模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2、在软件设计的初期要尽量将接口统一,及早发现不统一的接口进行重构,在双方都不太容易修改的时候再使用适配器模式进行适配。3、UML4、所属类别:结构型二、C+... 阅读全文
观察者模式
2015-01-20 21:32 by itwolf, 360 阅读, 收藏,
摘要:
一、简介1、观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化的时候,会通知所有观察者对象,使它们能够动态的更新自己。如:图形界面的工具箱中,表格对象和柱状图对象使用不同的形式描述同一应用数据对象的信息。表格对象和柱状图对象相互并不知道对方的存在,... 阅读全文