- 博客(18)
- 收藏
- 关注
原创 一些面试知识点
C++回顾1. _beginthread和CreateThread区别 CreateThread是Windows系统函数,_beginthread是CRT函数 _beginthread实际内部还是调用的CreateThread函数实现 CRT函数当中需要存储一些变量 类似getlasterror的错误信息,但是假如使用全局变量,在多线程下会出现错误,所以需要为每一
2017-07-19 17:43:35
263
转载 PostMessage和SendMessage的区别
http://blog.youkuaiyun.com/xiaodan007/article/details/7681031http://blog.youkuaiyun.com/zkybeck_ck/article/details/46540235http://www.cnblogs.com/trxdy/p/3381270.html
2017-07-17 16:45:01
384
原创 VC 窗口置于前台并激活的方法
1. ::ShowWindow(m_hWnd, SW_SHOWNORMAL);2. ::SetActiveWindow(main_window_->m_hWnd);3. ::SetForegroundWindow(main_window_->m_hWnd);4. ::SwitchToThisWindow(main_window_->m_hWnd, TRUE);5. ::S
2016-09-27 15:43:11
5325
原创 通过ShellExecute调用控制面板项
今天下午需要在项目上添加小菜单项 完成对IE Internet 选项的设置。开始以为是IE浏览器的自带窗口,后来发下在控制面板也存在,是一个独立的cpl程序。在此标记,改日整理http://www.cnblogs.com/xubin0523/archive/2012/11/01/2749729.htmlhttp://www.360doc.com/content/10/1119/13/397
2013-10-28 20:26:58
1054
原创 RGB888和RGB565互相转换
背景:在我们的计算机中图像是以RGB888格式显示图像的,24位图每个像素保存了32bit的数据,即RGB888+Alpha,Alpha就是半透明填充字节……但是对于真彩的图像而言,肉眼在16bit的时候已经难以分辨了,因此,有些时候,可以讲RGB888转换为RGB565来存储,减少了存储器的容量的同时,降低了数据量;在后端显示的时候,再次把RGB565转换为RGB888,实现数据宽度的匹配!!
2013-07-31 01:16:58
9712
原创 位操作符以及计算机数据存储
位操作符只能处理(signed / unsigned) 字符型、短整形、整形变量常量字面值,而不能操作小数。也可以类中进行运算符重载。━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符 作用 ──────────────────────────── & 位逻辑与| 位逻辑或^ 位逻辑异或- 位逻辑反>> 右移━━━━━━━━━━━━━━━━━━
2013-07-28 23:07:13
696
原创 通过一个宏求某结构体中某元素的偏移
#define FIND( struc, e ) (size_t)&(((struc*)0)- >e){ int a; char b; double c; } FIND(student,a); //等于0 FIND(student,b; //等于4 解析: 这里将0转换为struct指针,即临时指向NULL,而后
2013-07-12 00:00:45
812
原创 限定只能在栈或堆上实例化的类
今天面试遇到这样一个问题,要求写2个类 一个只能在栈上实例化 另一个只能在堆上实例化。对此问题百思不得其解,面试结束,赶紧求解,深恐遗忘: 只能在堆上实例化析构函数设置为私有或受保护成员,在定义栈对象后,函数结束时,不能调用非公有析构函数,这时也应该提供Destroy(){ delete this },避免造成内存泄露。class CHeapOnly{public
2013-07-11 23:38:18
728
原创 策略模式
策略模式: 它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。意图: 同一函数接口实现不同的算法。角色及职责: 抽象策略类(Strategy):提供这一系列算法的统一函数接口。 具体策略类(Concrete Strategy):根据需求实现的不同算法。
2013-07-03 22:12:52
778
原创 观察者模式
观察者模式: 定义了对象间一对多的联系。当一个对象的状态发生变化时,所有与它有联系的观察者对象都会得到通知。观察者模式将被观察的目标和观察者解耦,一个目标可以有任意多的观察者,观察者也可以观察任意多的目标,构成复杂的联系,而每个观察者都不知道其他观察者的存在。意图: 被观察者属性发生变化,各个观察者相应改变。角色及职责: 抽象被观察者(Subj
2013-07-03 17:29:20
905
原创 组合模式
组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。意图:解决整合与部分可以被一致对待问题。角色及其职责: Component类:组合中的对象声明接口,在适当情况下,实现所有类共有接口的行为。声明一个接口用于访问和管理Component的子部件Leaf类:叶节点对象,叶节点没有子节点。由于叶节点不能增加分支和树叶,所以
2013-07-03 00:04:22
761
原创 模版方法模式
模版方法模式:算法当中步骤是确定的,但是每一个步骤实现起来可能方法不同。角色及其职责: 2.1 抽象类(AbstractClass):定义了算法的骨架,提供算法每一步骤的函数接口。 2.2 具体类(ConcreteClass):实现算法的每一步骤。 示例代码:// 模版模式// 功能基类提供 流程函数 以及 流程步骤的接口// 子类完成流程步骤class Temp
2013-07-02 22:17:07
651
转载 建造者模式
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使的同样的构建过程可以创建不同的表示。建造者模式的优点是:使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以如要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。解决问题:主要用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但是对象内部的构建通常面临着复杂的变化
2013-07-02 16:52:35
924
转载 单例模式
单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点
2013-07-02 00:22:58
561
转载 原型模式
—————————————————————————————————————— 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。意图:用原型实例指
2013-07-01 23:41:59
893
转载 简单工厂、工厂、抽象工厂
简单工厂模式:专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。它又称为静态工厂方法模式,属于类的创建型模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。意图:提供一个类,由它负责根据一定的条件创建某一具体类的实例 角色及其职责: 工厂(Creator)角色:简单工厂模式的核心,
2013-07-01 23:17:54
842
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人