文章分类 - C++
摘要:例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:•第一种设计方案是为每一种形状都提供一套各种颜色的版本。•第二种设计方案是根据实际需要对形状和颜色进行组合。方案1:方案2: 对于有两个变...
阅读全文
摘要:如果以一个基础类指针指向一个衍生类对象(派生类对象),那么经由该指针只能访问基础类定义的函数如果基础类和衍生类定义了相同名称的成员函数,那么通过对象指针调用成员函数时,到底调用那个函数要根据指针的原型来确定,而不是根据指针实际指向的对象类型确定
阅读全文
摘要:书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来:先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 re...
阅读全文
摘要:http://www.cnblogs.com/jingmoxukong/articles/2167785.html如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一、带层次结构、清晰明了的命名准则就是必不可少而且非常好用的工具。活跃在生物学、化学、军队、监狱、黑社会、恐怖组织等各个领域...
阅读全文
摘要:scoped_ptr的用法与普通的指针没什么区别;最大的差别在于你不必再记得在指针上调用delete,还有复制是不允许的。不需要手工删除让我们看一个程序,它使用scoped_ptr来管理std::string指针。注意这里没有对delete的调用,因为scoped_ptr是一个自动变量,它会在离开作...
阅读全文
摘要:今天写模块类文件的一个收获是,在定义头文件时,能依赖前置声明的就不要依赖定义,同时在适当的情况下应该用类型的前置声明来减少头文件的导入。例如,在头文件中定义类的一个指针成员时,该指针是工程中另外定义的类型classAccount的一种指针Account*m_Account;。那么在该头文件的类声明之...
阅读全文
摘要:事件:按下鼠标,按下键盘,按下游戏手柄,将U盘插入USB接口,都将产生事件。比如说按下鼠标左键,将产生鼠标左键被按下的事件。消息:当鼠标被按下,产生了鼠标按下事件,windows侦测到这一事件的发生,随即发出鼠标被按下的消息到消息队列中,这消息附带了一系列相关的事件信息,比如鼠标哪个键被按了,在哪个...
阅读全文
摘要:事件代表过去发生的事件,事件既是技术架构概念,也是业务概念。以事件为驱动的编程模型称为事件驱动架构EDA。 EDA是一种以事件为媒介,实现组件或服务之间最大松耦合的方式。传统面向接口编程是以接口为媒介,实现调用接口者和接口实现者之间的解耦,但是这种解耦程度不是很高,如果接口发生变化,双方代码都需要...
阅读全文
摘要:1、Windows事件驱动机制 我们当中不少使用VC、Delphi等作为开发语言的程序员是一步步从DOS下的Basic、C++中走过来的,而且大多在刚开始学习编程时也是先从DOS下的编程环境入手的,因此在习惯了DOS下的过程驱动形式的顺序程序设计方法后,往往在向Windows下的开发环境转型的过程...
阅读全文
摘要:(Memory Pool)是一种内存分配方式。通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新...
阅读全文
摘要:共享内存与线程局部存储 当我们发明了MMU时,大家认为天下太平了,各个进程空间独立,互不影响,程序的稳定性将大提高。但马上又认识到,进程完全隔离也不行,因为各个进程之间需要信息共享。于是就搞出一种称为共享内存的东西。 当我们发明了线程的时,大家认为这下可爽了,线程可以并发执行,创建和切换的开销相对进...
阅读全文
摘要:为什么要有TLS?原因在于,进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量。在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保; 多个线程访问共享数据,需...
阅读全文
摘要:前两天看了LGame的事件机制 其中用了过多的同步操作,效率很低.于是自己就像写一个事件分发器,也算是自己对事件机制的理解吧,写得不好 各位看官就凑合看吧.先说下思想 事件分发器是个死循环线程 事件队列使用链表,因为链表移除增加速度最快.这里的事件比较特殊,不是传统的模型中的只进行1次分发就抛弃对象...
阅读全文
摘要:成员函数指针的操作在开始之前首先介绍一下成员函数指针,它与非成员函数指针的操作方式有很大的不同。有这么一个类:1234classA {public:voidFunc(int) { … }};要取得Func函数的指针,必须这么做:1void(A::*pFunc)(int) = &A::Func;::*...
阅读全文
摘要:1. 概述 有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。2. 解决的问题 将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一...
阅读全文
摘要:通过MyJingle来调试有如下优点:1.MyJingle已经帮我们配置好了VC Solution以及Setup打包工程。2.MyJingle能够连接到Google Talk,这样可以通过Gmail账号连接到google服务器,不用自己搭建XMPP服务器。3.通过活生生的实例代码,可以编调试,编了解...
阅读全文
摘要:http://www.cnblogs.com/wuyuegb2312/archive/2013/06/08/3126510.html11 22 33 44大端:高尾,高地址尾巴,网络,符合人类的方式11 22 33 44地址:低->高小端:地尾,低地址尾巴,CPU44 33 22 11
阅读全文
摘要:第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。publi...
阅读全文
摘要:纯虚函数是一种特殊的虚函数,它的一般格式如下: class { virtual ()=0; … }; 在许多情况下,在基类中不能对虚函数给出有意义有实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。下面给出一个纯虚函数的例子。 #include class poi...
阅读全文
摘要:转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7561235 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实...
阅读全文

浙公网安备 33010602011771号