<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[清澈不见底]]></title><description><![CDATA[Look inside you and you'll finally see the truth that a hero lies in you; Keep moving on!!]]></description><link>https://blog.youkuaiyun.com/phoebin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; phoebin]]></copyright><item><title><![CDATA[结构体对齐]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3907404</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3907404</guid><author>phoebin</author><pubDate>Wed, 18 Feb 2009 21:35:00 +0800</pubDate><description><![CDATA[   　#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]]></description><category></category></item><item><title><![CDATA[const、volatile、mutable的用法]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3900081</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3900081</guid><author>phoebin</author><pubDate>Tue, 17 Feb 2009 13:53:00 +0800</pubDate><description><![CDATA[const修饰普通变量和指针const修饰变量，一般有两种写法： const TYPE value; TYPE const value; 这两种写法在本质上是一样的。它的含义是：const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE，无论怎么写，都是一个含义，即value值不可变。 例如： const int nValue；    //nValu]]></description><category></category></item><item><title><![CDATA[Flyweight模式]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3866404</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3866404</guid><author>phoebin</author><pubDate>Fri, 06 Feb 2009 16:01:00 +0800</pubDate><description><![CDATA[Flyweight享元设计模式是一种结构型设计模式，它主要解决的问题是：由于（同类）对象的数量太大，采用面向对象时给系统带来了难以承受的内存开销。比如有这样一个场景：一个停车场中有1000辆汽车，我们所定义的汽车对象占用内存0.3M，那么要实例化1000辆就是300M。由此可见，在这种情况下采用一般的面向对象方式出现了大量细粒度的对象会很快充斥在系统中，从而带来很高的运行是代价（这里指的代价是内存]]></description><category></category></item><item><title><![CDATA[强制转换函数(const_cast，reinterpret_cast，static_cast，dynamic_cast)]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3864618</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3864618</guid><author>phoebin</author><pubDate>Thu, 05 Feb 2009 16:25:00 +0800</pubDate><description><![CDATA[C 风格（C-style）强制转型如下： (T) expression // cast expression to be of type T 函数风格（Function-style）强制转型使用这样的语法： T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同，它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格（o]]></description><category></category></item><item><title><![CDATA[STL vector用法介绍]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3864590</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3864590</guid><author>phoebin</author><pubDate>Thu, 05 Feb 2009 16:15:00 +0800</pubDate><description><![CDATA[介绍这篇文章的目的是为了介绍std::vector，如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用，如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器，而且应该不会再去使用C类型的动态数组了。 Vector总览vector是C++标准模板库中的部分内容，它是一个多功能的，能够操作多种]]></description><category></category></item><item><title><![CDATA[用VB把多个excel文件的数据顺序拷到一个excel中]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3864414</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3864414</guid><author>phoebin</author><pubDate>Thu, 05 Feb 2009 15:16:00 +0800</pubDate><description><![CDATA[是给朋友整理实验数据用的，两个小需求：一、要第一列是数据序号，且多个文件数据拷到目的文件的时候数据序号要按顺序排列；二、每个文件可能有多个worksheet，都要拷贝到目标文件里面。 对于office2003以前的excel，是支持Application.FileSearch的，实现代码如下：Sub Test()Dim i As Integer, iRow As Integ]]></description><category></category></item><item><title><![CDATA[从c++到java 之六 （堆和栈）]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3453407</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3453407</guid><author>phoebin</author><pubDate>Fri, 05 Dec 2008 15:28:00 +0800</pubDate><description><![CDATA[栈：只能存储知道确切大小和生命周期的数据，因为编译器需要生成相应的代码以准确的移动栈指针。也因此，java对象不会放在栈上。分配内存和释放内存是通过上下移动栈指针完成的，这种方法的效率仅仅次于寄存器。没有办法可以在栈上面创建非主类型的对象，这是和c++不同的。 堆：在堆上为数据分配空间很灵活，因为不需要数据的确切大小以及生命期，但是效率较栈分配要低，方法和c++是一样的]]></description><category></category></item><item><title><![CDATA[从c++到java 之五（主类型）]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3452967</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3452967</guid><author>phoebin</author><pubDate>Fri, 05 Dec 2008 14:39:00 +0800</pubDate><description><![CDATA[(7) 与C++类似，Java含有一系列“主类型”（Primitive type），以实现更有效率的访问。在Java中，这些类型包括boolean，char，byte，short，int，long，float以及double。所有主类型的大小都是固有的，且与具体的机器无关（考虑到移植的问题）。这肯定会对性能造成一定的影响，具体取决于不同的机器。对类型的检查和要求在Java里变得更苛刻。例如：■条件]]></description><category></category></item><item><title><![CDATA[从c++到java 之四（类定义+import）]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3452286</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3452286</guid><author>phoebin</author><pubDate>Fri, 05 Dec 2008 13:17:00 +0800</pubDate><description><![CDATA[(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]]></description><category></category></item><item><title><![CDATA[从c++到java 之三（inline）]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3452014</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3452014</guid><author>phoebin</author><pubDate>Fri, 05 Dec 2008 12:44:00 +0800</pubDate><description><![CDATA[(4) 所有方法都是在类的主体定义的。所以用C++的眼光看，似乎所有函数都已嵌入，但实情并非如何（嵌入的问题在后面讲述）。(30) Java不存在“嵌入”（inline）方法。Java编译器也许会自行决定嵌入一个方法，但我们对此没有更多的控制权力。在Java中，可为一个方法使用final关键字，从而“建议”进行嵌入操作。然而，嵌入函数对于C++的编译器来说也只是一种建议。java的成员函数，无]]></description><category></category></item><item><title><![CDATA[从c++到java 之二（static）]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3451907</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3451907</guid><author>phoebin</author><pubDate>Fri, 05 Dec 2008 12:23:00 +0800</pubDate><description><![CDATA[(3) 所有东西都必须置入一个类。不存在全局函数或者全局数据。如果想获得与全局函数等价的功能，可考虑将static方法和static数据置入一个类里。注意没有象结构、枚举或者联合这一类的东西，一切只有“类”（Class）！——与c++不同，java不存在静态存储区，因此说不存在全局函数和全局数据。java中的“静态”意味着RAM中固定的位置，在程序运行时一直存在，同样用static关键字来]]></description><category></category></item><item><title><![CDATA[从c++到Java 之一（47个差异）]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3451811</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3451811</guid><author>phoebin</author><pubDate>Fri, 05 Dec 2008 12:11:00 +0800</pubDate><description><![CDATA[从今天开始，偶要开始学习Java了。现在偶对java的了解在原点，哈哈，目标是尽可能快的搞懂java。看到一篇贴，关于c++和java的区别，偶打算从此入手，从这些差异入手开始学习java。先把它贴在这里，后面的学习会逐条加上我的详细理解。 (1) 最大的障碍在于速度：解释过的Java要比C的执行速度慢上约20倍。无论什么都不能阻止Java语言进行编译。写作本书的时候，刚刚出现了一]]></description><category></category></item><item><title><![CDATA[Bridge模式]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3435431</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3435431</guid><author>phoebin</author><pubDate>Wed, 03 Dec 2008 10:47:00 +0800</pubDate><description><![CDATA[ //AbstractionImp.h#ifndef _ABSTRACTIONIMP_H#define _ABSTRACTIONIMP_Hclass AbstractionImp{public:        virtual ~AbstractionImp();        virtual void Operation();protected:    ]]></description><category></category></item><item><title><![CDATA[Prototype模式]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3431012</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3431012</guid><author>phoebin</author><pubDate>Tue, 02 Dec 2008 19:44:00 +0800</pubDate><description><![CDATA[  //Prototype.h#ifndef _PROTOTYPE_H#define _PROTOTYPE_H class Prototype{public:        virtual Prototype * clone() const = 0;        virtual ~Prototype();protected:        Prot]]></description><category></category></item><item><title><![CDATA[Builder模式]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3430526</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3430526</guid><author>phoebin</author><pubDate>Tue, 02 Dec 2008 17:13:00 +0800</pubDate><description><![CDATA[ //Product.h#ifndef _PRODUCT_H#define _PRODUCT_Hclass Product{public:        Product();        ~Product();        void ProducePart();};#endif //Product.cpp#include "Produ]]></description><category></category></item><item><title><![CDATA[Singleton模式]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3429731</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3429731</guid><author>phoebin</author><pubDate>Tue, 02 Dec 2008 15:43:00 +0800</pubDate><description><![CDATA[ //Singleton.h#ifndef _SINGLETON_H#define _SINGLETON_H class Singleton{public:        static Singleton * Instance();protected:        Singleton();private:        static Singl]]></description><category></category></item><item><title><![CDATA[AbstractFactory模式]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3427914</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3427914</guid><author>phoebin</author><pubDate>Tue, 02 Dec 2008 12:29:00 +0800</pubDate><description><![CDATA[ //Product.h#ifndef _PRODUCT_H#define _PRODUCT_H class AbstractProductA{public:        ~AbstractProductA();protected:        AbstractProductA();}; class AbstractProductB{]]></description><category></category></item><item><title><![CDATA[Factory模式]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3423894</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3423894</guid><author>phoebin</author><pubDate>Mon, 01 Dec 2008 22:53:00 +0800</pubDate><description><![CDATA[ //Product.h#ifndef _PRODUCT_H #define _PRODUCT_H   class Product { public:         virtual ~Product() = 0; protected:         Product(); private:         ... ... };   cl]]></description><category></category></item><item><title><![CDATA[UML描述对象和类之间的相互关系]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3421409</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3421409</guid><author>phoebin</author><pubDate>Mon, 01 Dec 2008 16:09:00 +0800</pubDate><description><![CDATA[UML中描述对象和类之间相互关系的方式包括：依赖（Dependency）关联（Association）聚合（Aggregation）组合（Composition）泛化（Generalization）实现（Realization）等。 依赖 （Dependency）：元素A的变化会影响元素B，但反之不成立，那么B和A的关系是依赖关系，B依赖A；类属关系和实现关系在]]></description><category></category></item><item><title><![CDATA[UML模型元素]]></title><link>https://blog.youkuaiyun.com/phoebin/article/details/3420772</link><guid>https://blog.youkuaiyun.com/phoebin/article/details/3420772</guid><author>phoebin</author><pubDate>Mon, 01 Dec 2008 14:50:00 +0800</pubDate><description><![CDATA[  ]]></description><category></category></item></channel></rss>