C++
文章平均质量分 96
werben
只用一样东西,不明白它的道理,实在不明智。
展开
-
RO段、RW段和ZI段
转自http://bbs.ednchina.com/BLOG_ARTICLE_1883274.HTM 一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。 要转载 2012-09-12 17:32:31 · 923 阅读 · 0 评论 -
Effective C++学习笔记-内存管理
条款10:如果写了operator new就要同时写operator delete这样做是为了效率,也就是当一个类的size很小的时候,如果需要频繁的new和delete对象,也即大量的分配释放小的内存块,这样不仅会造成系统内存碎片,性能也会很差。这个时候我们可以在new第一个对象的时候分配一个很大的Pool资源池,这样在接下来频繁的new这个对象时,就从这个资源池里分内存就行而不是调用::o原创 2013-03-01 21:25:49 · 503 阅读 · 0 评论 -
C专家编程复习摘要一
一、关于类型转换 K&R C的不说了,说了还容易混淆,只说ANSI C的: 如果其中一个操作数的类型是unsigned long int,那么另外一个操作数也被转换为unsigned long int。其次其中一个操作数的类型是long int,而另一个操作数的类型是unsigned int,如果long int能够完整表示unsigned int 的所有值,那么unsigne原创 2012-12-08 15:53:30 · 522 阅读 · 0 评论 -
条款8:写operator new和operator delete时要遵循常规
1. 首先我被一个问题所困恼:条款7中的operator new是这么写的,但条款8中的new却多了一个while。回头再仔细看下条款7,原来条款7中的operator new只处理了第一次分配内存失败的异常。//条款7中的operator newtemplate void* NewHandlerSupport::operator new(size_t size) {原创 2012-06-11 17:34:38 · 508 阅读 · 0 评论 -
条款9:避免隐藏标准形式的new
如果在类里增加一个带多个参数的operator new函数,则标准的operator new(size_t size)将会屏蔽解决方法如下:1. 如果写了一个多带参数的operator new函数,则也写一个和标准new同样参数的new函数class X{private: //...public: void* operator new(size_t size, new_h原创 2012-06-12 17:19:14 · 486 阅读 · 0 评论 -
条款7:预先准备好内存不够的情况
1. operator new在无法完成内存分配请求时会抛出异常(在以前或者某些特定情况(声明nothrow)下new会返回0)2. 使用C语言的宏定义处理会是这样#define NEW(PTR, TYPE) \ try {(PTR) = new TYPE; } \ catch (std::bad_alloc&) { assert(0); }3. 用C+原创 2012-06-11 16:43:07 · 762 阅读 · 0 评论 -
Windows下C++实现线程池功能(固定线程数,自动调整未实现)(
http://blog.sina.com.cn/s/blog_6af95663010158j2.html #ifndef PUBLIC_H#define PUBLIC_H//测试消息CommandIdconst int COMMANDID1_REQ = 0x00000001;const int COMMANDID1_REP = 0x80000001;const int COM转载 2013-07-17 23:34:54 · 1601 阅读 · 0 评论 -
Windows系统线程池+利用windows自带的线程池
come from:http://www.fuzhijie.me/?p=65一直想弄明白Windows的IO完成端口是什么,这个词语每每出现在我眼前时总是伴随着鲜花和赞美,因此我便将其同许多我从来没搞懂过的东西一起归为神秘一类。这两天一直在看《Windows核心编程》,学到了不少东西,但是同别的英文经典一样,中文版经常让我感觉不知所云,我很不喜欢书中的例子都是用C++来写,并且都有图形界面,这转载 2013-07-18 09:57:47 · 5109 阅读 · 0 评论 -
《Windows核心编程系列》十一谈谈Windows线程池
转自:http://blog.csdn.net/ithzhang/article/details/8373243 Windows线程池 上一篇博文我们介绍了IO完成端口。得知IO完成端口可以非常智能的分派线程。但是IO完成端口仅对等待它的线程进行分派,创建和销毁线程的工作仍然需要我们自己来做。 我们自己也可以创建线程,但是涉及到线程的编码操作比较复杂,容转载 2013-07-18 17:34:50 · 1676 阅读 · 0 评论 -
Cocos-2dx精灵部分变灰
CCSprite* CCSpotLight::makeSpiteGray(CCSprite* changeSprite){ CCRenderTexture *render = CCRenderTexture::create(changeSprite->getContentSize().width, changeSprite->getContentSize().height,kCCTexture原创 2014-12-26 20:02:02 · 1078 阅读 · 0 评论 -
设计模式之享元模式
【定义】享元模式(Flyweight),运用共享技术有效的支持大量细粒度的对象。【场景】依旧以手机为例,手机有很多属性,品牌,手机号码,手机颜色等,现在假设手机有品牌和手机号码两种属性。手机品牌有Iphone,Sumsung,Nokia三种,但是手机号码却有千千万万,这千千万万的手机号码便是大量的细粒度的对象。为了减少对内存空间的需求,可以将号码提取出来单独存储,这样便只需要创建3个对象就原创 2012-08-26 23:49:48 · 421 阅读 · 0 评论 -
设计模式之备忘录模式
【定义】备忘录(Memento),在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。【场景】备忘录模式,当然是在单机游戏里面用的多。比如角色扮演的《仙剑奇侠传》,在打Boss之前我们都会先保存当前进度,以便Boss没死,自己死了,好回到之前的存档点继续。【UML】【代码】#include using原创 2012-08-12 23:04:35 · 622 阅读 · 0 评论 -
设计模式之组合模式
【定义】组合模式(Composite),将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。【场景】现在我们自己实现几个简单的基本控件(如按钮Button、文本编辑框Label)等;而实际上窗口也算上一个控件,只是窗口可以有子窗口,但最终窗口还是得由以上的这些Button,Label组成。这里窗口是整体,基本控件是部分。那我们怎么把基本控件原创 2012-08-15 21:24:49 · 452 阅读 · 0 评论 -
设计模式之解释器模式
【原文转自】http://blog.csdn.net/freshow/article/details/5772307解释器模式(interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。解释器模式需要解决的是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建转载 2012-08-29 22:25:06 · 426 阅读 · 0 评论 -
设计模式之访问者模式
【原文地址】http://blog.csdn.net/hityct1/article/details/4164393访问者模式(Visitor Pattern)的c++实现示例访问者模式是一种分离对象数据结构与行为的方法,通过这种分离,可以为一个已存在的类或类群(即被访问者)增加新的操作(即访问者)而无需为它们作任何修改。访问者模式属于行为型模式。 为什么要使用访问者模转载 2012-08-29 22:39:38 · 576 阅读 · 0 评论 -
设计模式之迭代器模式
【定义】迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。【场景】下面是一个Int型的数组,这里实现一个遍历该数组的迭代器。如果又有一个新的数组,而数组里面的数据是class Car,则实现一个class CarArray即可,迭代器类是基于模版的,即Array的数据类型是无关的。【UML】【代码】/* *原创 2012-08-21 21:49:41 · 469 阅读 · 0 评论 -
设计模式之单例模式
【定义】单例模式(SingleTon),保证一个类仅有一个实例,并提供一个访问它的全局访问点。【场景】很多exe文件都只允许运行一次,即当你第一个exe打开未关闭之前,再第二次打开,会提示说“已经有一个exe程序在运行了”,如果将这个exe文件看成一个类,则它就是一个单例。【UML】【代码】//下面的代码没有考虑多线程下的锁定#include using names原创 2012-08-21 23:20:09 · 491 阅读 · 0 评论 -
设计模式之桥接模式
【定义】桥接模式(Bridge),将抽象部分与它的实现部分分离,使他们都可以独立地变化。【场景】继承实际上是一种非常紧密的依赖关系,也即父类实现中的任何变化都将会导致子类发生变化。以手机为例,手机包括品牌和操作系统,假设现在手机品牌分三种:三星,苹果,诺基亚,而手机软件按系统来分也有两种:安卓,IOS。假设一个品牌和一个系统就可以组成一个手机。首先,手机肯定是一个抽象的对象,按品牌来分可以原创 2012-08-22 23:15:01 · 2401 阅读 · 0 评论 -
设计模式之命令模式
【定义】命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。【场景】这里以向窗口发送消息和窗口处理消息为例(有些牵强,UI窗口的消息管理其实可以用这个设计模式模拟实现,将Invoker改成MessageManager,set_message()改成为增加消息映射,将Window抽象成接口)。【UM原创 2012-08-26 15:24:20 · 506 阅读 · 0 评论 -
设计模式之中介者模式
【定义】中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显示地相互应用,从而使其耦合松散,而且可以独立的改变它们之间的交互。【场景】一个窗口中有两个控件,一个按钮Button和编辑框Label,现在要单机按钮则编辑框改变文本,如果将编辑框改变文本的代码放到按钮的单机事件处理函数里面,那这两个对象便是耦合的。现在可以将窗口Window作为一个中介者原创 2012-08-26 19:17:46 · 415 阅读 · 0 评论 -
设计模式之职责链模式
【定义】职责链模式(Chain of Responsibility),使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的偶合关系。将这个对象练成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。【UML】【代码】#include using namespace std;class Handle{protected: Handle* next原创 2012-08-26 16:28:34 · 491 阅读 · 0 评论 -
Vs2012局域网内无法访问的问题
网上很多文章说修改iisexpress的配置文件即可,具体文件为:C:\Users\username\Documents\IISExpress\config下的applicationhost.config如下增加一个IP配置原创 2017-12-05 11:19:08 · 773 阅读 · 0 评论