<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[backo880607的专栏]]></title><description><![CDATA[Technology make the life become an experience]]></description><link>https://blog.youkuaiyun.com/backo880607</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; backo880607]]></copyright><item><title><![CDATA[设计模式之——Factory（工厂模式）]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/9324693</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/9324693</guid><author>backo880607</author><pubDate>Sun, 14 Jul 2013 16:04:08 +0800</pubDate><description><![CDATA[这里讲述的是Utility模块中所使用到的工厂模式……]]></description><category></category></item><item><title><![CDATA[static]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8878732</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8878732</guid><author>backo880607</author><pubDate>Fri, 03 May 2013 09:40:26 +0800</pubDate><description><![CDATA[Static variable（静态变量）的初始化时机
1、函数内部定义的静态变量的初始化分两种：执行期初始化，通过编译期常量加以初始化。这两种初始化的时机不同
执行期初始化：（第一次执行到该函数时初始化）
void fun()
{
    static A a;
}
通过编译期常量加以初始化：（在执行程序代码前初始化，通常为程序装载的时候）
void fun()
{
    stati]]></description><category></category></item><item><title><![CDATA[设计模式之——Singleton（单令模式）]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8878123</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8878123</guid><author>backo880607</author><pubDate>Thu, 02 May 2013 23:38:11 +0800</pubDate><description><![CDATA[单令模式用于保证一个类只有一个实例，C++最常见的写法为
class CSingleton
{
CSingleton() {}
~CSingleton() {}
CSingleton(const CSingleton&);
CSingleton& operator= (const CSingleton&);

public:
    static CSingleton& Instance()]]></description><category></category></item><item><title><![CDATA[软件架构设计之Utility模块——Any]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8710534</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8710534</guid><author>backo880607</author><pubDate>Sat, 23 Mar 2013 17:52:12 +0800</pubDate><description><![CDATA[YKAny类用于保存任意类型的变量类似于variant_t。这里采用的是boost库中的Any实现原理，增加了两个Any之间比较的功能。看代码吧：
class UTIL_API YKAny
{
	class PlaceHolder
	{
	public:
		PlaceHolder() {}
		virtual ~PlaceHolder() {}

		virtual const std::ty]]></description><category></category></item><item><title><![CDATA[软件架构设计之Utility模块——DateTime]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8710505</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8710505</guid><author>backo880607</author><pubDate>Sat, 23 Mar 2013 17:41:49 +0800</pubDate><description><![CDATA[这里的日期实现比较简单：采用的是UTC日期（现在还不涉及到其他日期格式的转换如Gregorian日历），且以星期一作为每周的第一天。剩下的就看代码吧：
头文件：
class UTIL_API YKDateTime
{
public:
	enum DT_FORM
	{
		DTF_YMDHMS1,		//%Y-%m-%d %H:%M:%S，中文格式选此
		DTF_YMDHMS2,		//%m/]]></description><category></category></item><item><title><![CDATA[软件架构设计之Utility模块——string]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8710477</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8710477</guid><author>backo880607</author><pubDate>Sat, 23 Mar 2013 17:27:17 +0800</pubDate><description><![CDATA[YKString类是对STL 中的std::wstring的功能扩展，没有什么好解释的了，就直接看代码吧。
头文件：
class YKString : public std::wstring
{
public:
	typedef std::wstring::size_type	size_type;

	YKString() : std::wstring() {}
	YKString(const]]></description><category></category></item><item><title><![CDATA[C++知识点整理——继承]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8698761</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8698761</guid><author>backo880607</author><pubDate>Wed, 20 Mar 2013 23:47:21 +0800</pubDate><description><![CDATA[继承的基础知识在这就不进行介绍了，“知识点整理”是平时对不是经常用到的相关知识点的一个整理，注意一些不太常见，但是很有意思的知识，有助于加深我们对C++的认识。
一：私有继承
         私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员，并且不能被这个派生类的子类所访问。
         这里将私有继承，因为前段时间遇见一个题目：在private inheritance]]></description><category></category></item><item><title><![CDATA[软件架构设计之Utility模块——Functor]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8694381</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8694381</guid><author>backo880607</author><pubDate>Wed, 20 Mar 2013 00:19:26 +0800</pubDate><description><![CDATA[一：前言

         现在要实作一个泛化仿函数，泛化仿函数是将“请求（函数）封装起来”，存储与对象之中，该对象是具有“value语义”的，因此它支持拷贝，赋值和作为函数参数来传值（pass by value）。通过该对象可间接的处理它封装的请求，类似于boost 中的function功能。本实现采用的是《Modern C++ Design》中的方案。更详尽的说，它具有以下特点：]]></description><category></category></item><item><title><![CDATA[软件架构设计之Utility模块——智能指针]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8689494</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8689494</guid><author>backo880607</author><pubDate>Mon, 18 Mar 2013 23:01:57 +0800</pubDate><description><![CDATA[一：前言
         大家应该明白智能指针的用途（管理动态对象的生命期）及好处。其他话就不多说了，直接看如何实现吧。你将会看到一个基于策略而实作出的无比强大，灵活的智能指针。参考的依然是《Modern C++ Design》一书。
二：原理说明
         软件工程比其他工程有更丰富的多样性。你可以采用多种正确的方法去完成一件事情。一旦你选择了一种解决方案，便会有一大堆变化随之涌]]></description><category></category></item><item><title><![CDATA[软件架构设计之Utility模块——内存分配]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8683816</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8683816</guid><author>backo880607</author><pubDate>Sun, 17 Mar 2013 16:04:42 +0800</pubDate><description><![CDATA[一：前言
内存分配当然是对动态内存的分配（动态内存是在堆中分配的），使用动态内存的优点：
1.动态内存可以在不同的对象与函数之间共享。
2.动态分配的内存空间的大小可以在运行时确定。
关于内存的知识不想过多的解释，毕竟这是一篇注重设计与实现的文章，让我们把重点转移到：我们为什么要内存分配器，如何实现，对于多种实现，我们该如何抉择，实现后的效果如何等等一系列问题。
二：为什么要内存分配器]]></description><category></category></item><item><title><![CDATA[软件架构设计之导读]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/8681417</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/8681417</guid><author>backo880607</author><pubDate>Sat, 16 Mar 2013 16:46:07 +0800</pubDate><description><![CDATA[一：前言
我在大二的时候的开始接触C++，这是我学的第一门编程语言，而更巧合的事情，那一学期我在一家公司跟着该公司聘请的外教学习VC，大家可想而知会有什么样的后果——老板及教师都说我什么都不懂，天，我刚接触C++唉。这样就开始我混沌的C++及VC学习之路。因为要在公司里跟着学习VC，因此那段时间，在学校里经常捧着厚厚的《VC++经典入门》来回的啃着，为写出一个窗口程序而兴奋不已（当然你不用编写一]]></description><category></category></item><item><title><![CDATA[深入理解C++的动态绑定和静态绑定]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/6442832</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/6442832</guid><author>backo880607</author><pubDate>Tue, 24 May 2011 16:45:00 +0800</pubDate><description><![CDATA[<br /> <br />为了支持c++的多态性，才有了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性，以及在编程的过程中避免犯错误。<br />需要理解四个名词：<br />1、对象的静态类型：对象在声明时采用的类型。是在编译期确定的。<br />2、对象的动态类型：目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改，但是静态类型无法更改。<br />关于对象的静态类型和动态类型，看一个示例：<br />class B<br />{<br />}<br />class C : publ]]></description><category></category></item><item><title><![CDATA[GDI+学习之路8--图形容器]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/6439992</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/6439992</guid><author>backo880607</author><pubDate>Mon, 23 May 2011 16:04:00 +0800</pubDate><description><![CDATA[<br /><br />       图片状态（裁剪区域、变形、质量设置等）存储于Graphics对象中。GDI+ 允许您采用一个容器临时替换或者扩充一个Graphics对象的状态。调用Graphics对象的BeginContainer方法开始一个容器，直至调用EndContainer方法终止一个容器。在这期间，您对于属于该容器的Graphics对象进行的任何状态改变都不会覆盖掉Graphics对象现存的状态。<br />下面的例子在一个Graphics对象中创建一个容器。Graphics对象的世界变换是向]]></description><category></category></item><item><title><![CDATA[GDI+学习之路7--坐标系统和转换]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/6439957</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/6439957</guid><author>backo880607</author><pubDate>Mon, 23 May 2011 15:56:00 +0800</pubDate><description><![CDATA[<br /><br />         GDI+
提供世界变换和页面变换功能，可让您转换 (旋转、缩放、平移等) 所绘制的项目。这两种转换功能适用于各种坐标系统。坐标系统类型(Types of Coordinate Systems)<br />GDI+使用三个坐标空间：世界、页面和设备。世界坐标 (World Coordinate) 是用来制作特定绘图自然模型的坐标。页面坐标 (Page Coordinate) 则是指绘图接口 (例如窗体或控件) 使用的坐标系统。设备坐标 (Device Coordin]]></description><category></category></item><item><title><![CDATA[GDI+学习之路6--图象、位图和图元文件]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/6400339</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/6400339</guid><author>backo880607</author><pubDate>Fri, 06 May 2011 16:55:00 +0800</pubDate><description><![CDATA[<br /> <br /> <br />         Microsoft Windows GDI+提供了Image类用于进行光栅图像（位图）和矢量图像（图元文件）。Bitmap类和Metafile类都是继承自Image类。Bitmap类通过提供加载、储存和管理光栅图像的其它方法，增强了Image类的功能。Metafile类别通过提供记录和检验矢量图像的其它方法，增强Image类别的功能。位图类型(Types of Bitmaps)<br />位图是像素的矩形阵列，而每个像素都由位数组指定其颜色。单个像素]]></description><category></category></item><item><title><![CDATA[GDI+学习之路5--线条、曲线和图形（三）]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/6370860</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/6370860</guid><author>backo880607</author><pubDate>Thu, 28 Apr 2011 23:29:00 +0800</pubDate><description><![CDATA[<br /> <br />         今天更新多点吧，把线条、曲线和图形部分写完了。看起来得要有时间的紧迫感啊，呵呵……画刷和填充图形(Brushes and Filled Shapes)<br />         一个闭合图形比如矩形和椭圆包含一个边框和内部区域。边框是由Pen对象绘制，而内部区域由Brush对象进行填充。Microsoft Windows
GDI+提供几种画刷类用于填充闭合图形的内部区域：SolidBrush、HatchBrush、TextureBrush、LinearGrad]]></description><category></category></item><item><title><![CDATA[GDI+学习之路4--线条、曲线和图形（二）]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/6369166</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/6369166</guid><author>backo880607</author><pubDate>Thu, 28 Apr 2011 11:30:00 +0800</pubDate><description><![CDATA[         10天都没有更新博文了，忙着做公司的事情。昨天终于交了，感受到做个产品的不容易。看来前期工作还是没有做够，呵呵……但总算完成了。现在可继续我的GDI+学习之路。基数样条(Cardinal Splines)         基数样条是一组独立的曲线按照一定的顺序连接成一条较大的曲线。样条由一组点和张力参数描述，基数样条以平滑的方式穿过数组里的每个点，在曲线上不会出现尖角和突变。下图显示一组点和穿过他们每个点的基数样条。    基数样条在张力参数不同的时候将生成不同的曲线，下图显示了通过相同一]]></description><category></category></item><item><title><![CDATA[GDI+学习之路3--线条、曲线和图形（一）]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/6330152</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/6330152</guid><author>backo880607</author><pubDate>Mon, 18 Apr 2011 00:27:00 +0800</pubDate><description><![CDATA[<br /> <br />         GDI+的矢量绘图部分被用来绘制线条、绘制曲线和填充图形。矢量图概览(Overview of Vector Graphics)<br />         Microsoft Windows GDI+在一个坐标系统中绘制线条、矩形和其它图形，你可以选择各种不同的坐标系统，默认的坐标系统原点为左上角，X轴指向右，Y轴指向下，其度量单位为像素。<br /><br />电脑显示器在一个矩形点阵(即分辨率)上创建其显示画面，这些点称为图片要素或者象素。不同的显示器其在屏幕]]></description><category></category></item><item><title><![CDATA[GDI+学习之路2--新特性]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/6328694</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/6328694</guid><author>backo880607</author><pubDate>Sun, 17 Apr 2011 01:14:00 +0800</pubDate><description><![CDATA[<br /> <br />Microsoft Windows GDI+ 不同于GDI体现在2个方面。第一，GDI+通过提供新的功能扩展了GDI的特性，比如渐变画刷和半透明混合。第二，编程模型的改进使得图形开发更加简单和灵活。相对于GDI的新特性渐变画刷（Gradient Brushes）<br />         GDI+通过提供用于填充图形、路径、区域的线性渐变和路径渐变画刷来扩展了GDI的功能。渐变画刷同样能够被用来绘制线条、曲线、路径。当您采用线性渐变画刷填充图形的时候，颜色将在穿越该图形时逐渐改变]]></description><category></category></item><item><title><![CDATA[GDI+学习之路1--准备知识]]></title><link>https://blog.youkuaiyun.com/backo880607/article/details/6319432</link><guid>https://blog.youkuaiyun.com/backo880607/article/details/6319432</guid><author>backo880607</author><pubDate>Wed, 13 Apr 2011 00:19:00 +0800</pubDate><description><![CDATA[<br />    从今天开始，根据MSDN中GDI+文档正式学习GDI+图形界面编程技术。GDI+概述：<br />Microsoft Windows GDI+ 是Windows XP和Windows Server 2003操作系统的子系统，它负责在屏幕和打印机上显示信息。GDI+是一个应用程序编程接口（API），它由一组C++类实现。基于Microsoft Win32的应用程序不能直接访问图形硬件，而是通过GDI+来协调设备驱动和程序动作的交互。GDI+同样支持Microsoft Win64。<br /]]></description><category></category></item></channel></rss>