自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

清澈不见底

Look inside you and you'll finally see the truth that a hero lies in you; Keep moving on!!

  • 博客(25)
  • 资源 (3)
  • 收藏
  • 关注

原创 结构体对齐

    #pragma pack(4)  class TestB  {  public:    int aa;    char a;    short b;    char c;  };  int nSize = sizeof(TestB);  这里nSize结果为12,在预料之中。  现在去掉第一个成员变量为如下代码:  #pragma pack(4)  class TestC  {  pu

2009-02-18 21:35:00 970

转载 const、volatile、mutable的用法

const修饰普通变量和指针const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如: const int nValue;    //nValu

2009-02-17 13:53:00 1528

转载 Flyweight模式

Flyweight享元设计模式是一种结构型设计模式,它主要解决的问题是:由于(同类)对象的数量太大,采用面向对象时给系统带来了难以承受的内存开销。比如有这样一个场景:一个停车场中有1000辆汽车,我们所定义的汽车对象占用内存0.3M,那么要实例化1000辆就是300M。由此可见,在这种情况下采用一般的面向对象方式出现了大量细粒度的对象会很快充斥在系统中,从而带来很高的运行是代价(这里指的代价是内存

2009-02-06 16:01:00 4474

转载 强制转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)

C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(o

2009-02-05 16:25:00 2575

转载 STL vector用法介绍

介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。 Vector总览vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种

2009-02-05 16:15:00 252804 25

原创 用VB把多个excel文件的数据顺序拷到一个excel中

是给朋友整理实验数据用的,两个小需求:一、要第一列是数据序号,且多个文件数据拷到目的文件的时候数据序号要按顺序排列;二、每个文件可能有多个worksheet,都要拷贝到目标文件里面。 对于office2003以前的excel,是支持Application.FileSearch的,实现代码如下:Sub Test()Dim i As Integer, iRow As Integ

2009-02-05 15:16:00 6419

原创 从c++到java 之六 (堆和栈)

栈:只能存储知道确切大小和生命周期的数据,因为编译器需要生成相应的代码以准确的移动栈指针。也因此,java对象不会放在栈上。分配内存和释放内存是通过上下移动栈指针完成的,这种方法的效率仅仅次于寄存器。没有办法可以在栈上面创建非主类型的对象,这是和c++不同的。 堆:在堆上为数据分配空间很灵活,因为不需要数据的确切大小以及生命期,但是效率较栈分配要低,方法和c++是一样的

2008-12-05 15:28:00 1260

原创 从c++到java 之五(主类型)

(7) 与C++类似,Java含有一系列“主类型”(Primitive type),以实现更有效率的访问。在Java中,这些类型包括boolean,char,byte,short,int,long,float以及double。所有主类型的大小都是固有的,且与具体的机器无关(考虑到移植的问题)。这肯定会对性能造成一定的影响,具体取决于不同的机器。对类型的检查和要求在Java里变得更苛刻。例如:■条件

2008-12-05 14:39:00 1114

原创 从c++到java 之四(类定义+import)

(5) 在Java中,类定义采取几乎和C++一样的形式。但没有标志结束的分号。没有class foo这种形式的类声明,只有类定义。public class aClass{  int i;  float f;  boolean b;  public static void main(String[] args) {  //方法主体    aClass d = new aClass();    d

2008-12-05 13:17:00 1503

原创 从c++到java 之三(inline)

(4) 所有方法都是在类的主体定义的。所以用C++的眼光看,似乎所有函数都已嵌入,但实情并非如何(嵌入的问题在后面讲述)。(30) Java不存在“嵌入”(inline)方法。Java编译器也许会自行决定嵌入一个方法,但我们对此没有更多的控制权力。在Java中,可为一个方法使用final关键字,从而“建议”进行嵌入操作。然而,嵌入函数对于C++的编译器来说也只是一种建议。java的成员函数,无

2008-12-05 12:44:00 7673 3

原创 从c++到java 之二(static)

(3) 所有东西都必须置入一个类。不存在全局函数或者全局数据。如果想获得与全局函数等价的功能,可考虑将static方法和static数据置入一个类里。注意没有象结构、枚举或者联合这一类的东西,一切只有“类”(Class)!——与c++不同,java不存在静态存储区,因此说不存在全局函数和全局数据。java中的“静态”意味着RAM中固定的位置,在程序运行时一直存在,同样用static关键字来

2008-12-05 12:23:00 1582

转载 从c++到Java 之一(47个差异)

从今天开始,偶要开始学习Java了。现在偶对java的了解在原点,哈哈,目标是尽可能快的搞懂java。看到一篇贴,关于c++和java的区别,偶打算从此入手,从这些差异入手开始学习java。先把它贴在这里,后面的学习会逐条加上我的详细理解。 (1) 最大的障碍在于速度:解释过的Java要比C的执行速度慢上约20倍。无论什么都不能阻止Java语言进行编译。写作本书的时候,刚刚出现了一

2008-12-05 12:11:00 1793

转载 Bridge模式

 //AbstractionImp.h#ifndef _ABSTRACTIONIMP_H#define _ABSTRACTIONIMP_Hclass AbstractionImp{public:        virtual ~AbstractionImp();        virtual void Operation();protected:    

2008-12-03 10:47:00 754

转载 Prototype模式

  //Prototype.h#ifndef _PROTOTYPE_H#define _PROTOTYPE_H class Prototype{public:        virtual Prototype * clone() const = 0;        virtual ~Prototype();protected:        Prot

2008-12-02 19:44:00 737

转载 Builder模式

 //Product.h#ifndef _PRODUCT_H#define _PRODUCT_Hclass Product{public:        Product();        ~Product();        void ProducePart();};#endif //Product.cpp#include "Produ

2008-12-02 17:13:00 681

转载 Singleton模式

 //Singleton.h#ifndef _SINGLETON_H#define _SINGLETON_H class Singleton{public:        static Singleton * Instance();protected:        Singleton();private:        static Singl

2008-12-02 15:43:00 649

转载 AbstractFactory模式

 //Product.h#ifndef _PRODUCT_H#define _PRODUCT_H class AbstractProductA{public:        ~AbstractProductA();protected:        AbstractProductA();}; class AbstractProductB{

2008-12-02 12:29:00 610

转载 Factory模式

 //Product.h#ifndef _PRODUCT_H #define _PRODUCT_H   class Product { public:         virtual ~Product() = 0; protected:         Product(); private:         ... ... };   cl

2008-12-01 22:53:00 770

原创 UML描述对象和类之间的相互关系

UML中描述对象和类之间相互关系的方式包括:依赖(Dependency)关联(Association)聚合(Aggregation)组合(Composition)泛化(Generalization)实现(Realization)等。 依赖 (Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在

2008-12-01 16:09:00 3511

原创 UML模型元素

  

2008-12-01 14:50:00 1629

原创 static关键字

先从内存说起,最精简的嵌入式系统也要划分出以下这些section:代码段全局数据段堆栈 再说c++里面的static关键字,分五个部分:1. 静态全局变量2. 静态局部变量3. 静态数据成员4. 静态非成员函数5. 静态成员函数 1. 静态全局变量static关键字放在全局变量前面,这个全局变量就是静态全局变量了。static int A

2008-11-28 21:40:00 714

原创 继续说初始化列表

在一些情况下,初始化列表可以做到构造函数做不到的事情:1. 类里面有const类型的成员,它是不能被赋值的,所以需要在初始化列表里面初始化它;2. 引用类型的成员(也就是名字成员,它作为一个现有名字的别名),也是需要在初始化列表里面初始化的,目的是为了生成了一个其名字成员在类外可以被修改而在内部是只读的对象;3. 需要调用基类的构造函数,且此基类构造函数是有参数的;4. 类里面有其

2008-11-28 17:35:00 853

原创 初始化列表+init()

对象的初始化,可以通过初始化列表给数据成员赋值,还可以在构造函数里面写代码给成员赋值。相比之下,推荐使用初始化列表的方法,除非类里面包含好多个数据成员,这会显得纷繁凌乱,维护起来不好看,做LTD的代码里面,凡遇此种情况,就在类里面多加一个init()函数,来对这众多的数据成员复制,构造函数和拷贝构造函数里面加上这么一行init()就ok了。myClass::myClass(const &

2008-11-28 16:05:00 852

原创 有指针成员变量,要注意莫要MLK了

Class myString{ public:             myString(const char *value);            ~myString();private:            char *data;} ;最简单的类myString,但是值得注意的是它里面有个指针成员char * data。先来写清楚这个构造函数——my

2008-11-28 14:58:00 733

原创 开篇贴

发现CSDN的版式和文字比例很适合技术文档的记述和阅读,以后就在这里写下自己感兴趣的技术方面的东东。好像一本网络版电子笔记吧,也敦促自己一下,争取每天都有新东西学到。如果博客疏于更新,那就是我的生命又遭浪费了,呵呵

2008-11-28 13:50:00 455

软件测试专业术语表.pdf

此术语表为国际软件测试认证委员会(ISTQB)发布的标准术语表。此表历经数次修改、完善,集纳了计算机行业界、商业界及政府相关机构的见解及意见,在国际化的层面上达到了罕有的统一性及一致性。参与编制此表的国际团体包括澳大利亚、比利时、芬兰、德国、印度、以色列、荷兰、挪威、葡萄牙、瑞典、英国和美国。 多数软件测试工程师使用1998年发布的BS 7925-1标准。英国信息系统考试委员会(ISEB)也以此标准作为基础级别和从业级别认证的首要参考标准。BS 7925-1标准最初是围绕着单元测试撰写的,自发布之后许多旨在改进和扩展此标准,以覆盖更广义范围的软件测试领域的新概念和提议不断涌现。最新版的BS 7925-1标准中的软件测试词汇吸纳、融合了上述概念和提议。此国际软件测试认证委员会(ISTQB)发布的标准术语表即是以最新版的BS 7925-1标准为基础制定的国际化软件测试标准术语。

2008-12-05

Effective Software Testing-50 Specific Ways to Improve Your Testing.pdf

Effective Software Testing provides experience-based practices and key concepts that can be used by an organization to implement a successful and efficient testing program. The goal is to provide a distilled collection of techniques and discussions that can be directly applied by software personnel to improve their products and avoid costly mistakes and oversights. This book details 50 specific software testing best practices, contained in ten parts that roughly follow the software life cycle.

2008-12-05

设计模式精解-c++.pdf

23种设计模式的思想、适用情况的详细介绍,并附上c++源代码实现,非常适合初学者学习。

2008-12-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除