上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 18 下一页

2012年6月8日

摘要: C++类的成员函数数组声明与使用与普通的函数数组稍有不同:首先谈谈声明 1.数组声明:int Fun[MAX_LEN];//包含MAX_LEN个int类型元素的int型数组 2.指针数组:int *Fun[MAX_LEN];//函数名其实为函数的入口地址,可以理解为指向函数所占用内存的指针,所以数组需声明为指针数组 3.函数数组:int (*Fun[MAX_LEN])(int, int);//函数指针数组,与普通函数指针数组相同 4.成员函数数组:int (ClassName::*Fun[MAX_LEN])(int, int);//ClassName为类名,声明类的成员函数指针数组必须在此加. 阅读全文
posted @ 2012-06-08 14:02 很多不懂呀。。 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 函数指针数组的定义方法,有两种:一种是标准的方法;一种是蒙骗法。第一种,标准方法:{分析:函数指针数组是一个其元素是函数指针的数组。那么也就是说,此数据结构是是一个数组,且其元素是一个指向函数入口地址的指针。根据分析:首先说明是一个数组:数组名[]其次,要说明其元素的数据类型指针:*数组名[].再 次,要明确这每一个数组元素是指向函数入口地址的指针:函数返回值类型 (*数组名[])().请注意,这里为什么要把“*数组名[]”用括号扩起来呢?因为圆括号和数组说明符的优先级是等同的,如果不用圆括号把指针数组说明表达式扩起来,根据圆括号和方括号的结合方向,那么 *数组名[]() 说明的是什么呢?是元 阅读全文
posted @ 2012-06-08 13:56 很多不懂呀。。 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 这里的所说的掩码是指一个int值来涵盖多种情况。其实这种掩码我们也经常遇到过。比如MFC程序中的窗口类CWnd类的鼠标移动消息处理函数:afx_msg void OnMouseMove(UINT nFlags,CPoint point); 该函数的第一个参数UINT nFlags就可以称为一个掩码。这个掩码涵盖了在移动鼠标时用户是否同时还按下了鼠标左键、鼠标右键等多种情况。其实这还算是简单的,因为这只是一个组合键的问题。现在存在多种可能组合的情况。比如在一个二维图形编辑软件,使用鼠标点选图形编辑,每次只能选一个图形。现在所有的点图形放在点数组,所有线图形放在线数组。要实现点选图形,得先设定一个 阅读全文
posted @ 2012-06-08 11:37 很多不懂呀。。 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍策略模式的实现。 策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异。用策略模式来封装算法,效果比较好。下面... 阅读全文
posted @ 2012-06-08 11:11 很多不懂呀。。 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 2010-05-07 21:26 670人阅读 评论(2) 收藏 举报先看一下策略模式的UML类图:从类图可以看出,策略模式基本和简单工厂模式没什么区别,从我的理解他们两个最大的区别就是:简单工厂模式是实现对象的多样性,而策略模式适合类中的成员以方法为主; 简单工厂模式只能解决对象创建问题,对于经常变动的算法应使用策略模式。 放代码看看吧:Cpp代码 //策略基类 classCOperation { public: intm_nFirst; intm_nSecond; virtualdoubleGetResult() { doubledResult=0; returndResult; } }; 阅读全文
posted @ 2012-06-08 10:35 很多不懂呀。。 阅读(195) 评论(0) 推荐(0) 编辑

2012年6月7日

摘要: 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍工厂模式的实现。 工厂模式属于创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。听上去差不多,都是工厂模式。下面一个个介绍,首先介绍简单工厂模式,它的主要特点是需要在工厂类中做判断,从而创造相应的产品。当增加新的产品时,就需要.. 阅读全文
posted @ 2012-06-07 17:40 很多不懂呀。。 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍状态模式的实现。 状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。它有两种使用情况:(1)一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为。(2)一个操作中含有庞大的多分支的条件语句,且这些.. 阅读全文
posted @ 2012-06-07 16:30 很多不懂呀。。 阅读(190) 评论(0) 推荐(0) 编辑

2012年6月6日

摘要: 语言位运算符:与、或、异或、取反、左移和右移位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0<< 左移 用来将一个 阅读全文
posted @ 2012-06-06 20:38 很多不懂呀。。 阅读(821) 评论(0) 推荐(0) 编辑
摘要: vim(vi)是Linux中功能强大的编辑工具。vim有3中主要的模式:1.normalmode:当进入vim时,默认的模式就是normalmode。在此模式下,无法输入任何文字,不过可以利用按键命令来执行许多操作命令,例如移动光标位置、复制、删除。2.insertmode:进入vim输入a、i、或o键。即可进入insertmode,此模式下可以输入文字内容。3.command-linemode:在normalmode中输入“:”即会进入command-linemode,在此模式下,可以做一些与输入文字无关的事,例如搜索字符串、保存文件或结束编辑等。在normalmode下:h:将光标向左移动 阅读全文
posted @ 2012-06-06 15:23 很多不懂呀。。 阅读(393) 评论(0) 推荐(0) 编辑

2012年6月5日

摘要: Ctrl+L 清屏,类似clearCtrl+W 剪切光标前的字符Ctrl+Y 粘贴Ctrl+W剪切的内容Ctrl+R 从历史命令里查找文件按时间排序:ll -rtmkdir命令: 创建目录介绍:该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录语法:mkdir [-m] [-p] 目录名选项介绍: -m: 对新建目录设置存取权限,也可以用chmod命令设置; -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;执行范例:01 $ mkdir DIRA02. 阅读全文
posted @ 2012-06-05 21:32 很多不懂呀。。 阅读(234) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 18 下一页

导航