随笔分类 - C++
摘要:上周换了家公司,由于项目还没有开始,所以比较清闲,上班没事捣鼓下了装饰模式,下面来做做笔记。 装饰模式:动态的将职责额外的加到对象上,若是要扩展,装饰模式提供比继承更加灵活。 上面定义可能比较羞涩难明白,我们举个例子。如世界有英语课程,英语课程很多国家又各有不同,如果中国英语。中国英文又分为新东方英
阅读全文
摘要:年过完了,开始上班了,时间过得太快了,感觉过了个假年........ 代理模式:为其他对象提供一种代理,以控制这个对象的访问。 角色分工:Subject:抽象角色,声明对真实对象和代理对象的共同接口;Proxy:代理角色,代理真实对象的访问;RealSubject:真实角色,最终需要引用的对象。 代
阅读全文
摘要:组合模式:将对象组合成树形结构以来表示"整体--部分"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 关于组合模式的定义有个关键词"树形",这个很关键,也很常见,如二叉树什么的。举个例子,如孝感城市,有教育部分和检察部门,孝感市下面的又有大悟县、红安县等县城,每个县城下面也有教育
阅读全文
摘要:昨天一个哥们面试,面试官给他出一道题:将字符串反转,如qwert,反转为trewq;将一个句子反转,如Do one thing,反转为thing one Do。 首先,这个题目可以可以分为两个题目来做。1、反转字符串。2、反转句子。 1、反转字符串: 我这里用了两种方法: (1)定义一个反转函数,里
阅读全文
摘要:建造者模式:将复杂的对象的表示和它的实现相分离,使其在同样的构建下可以构建不通的表示。 上面的话可能不是很明白,举个例子就明白了。假设一个公司的软件项目流程是固定的,都需要经过需求理解、需求设计、需求审核、编码、测试这个五个步骤,但是这个公司是一个一级供应商,在拿到项目后,有些模块需要承包给二级供应
阅读全文
摘要:原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 其中心思想就是克隆。举个例子,我们经常性需要复印身份证复印件,有时需要几张,其实就是克隆,关于代码和UML类图,我就不再多描述了,因为这个太简单了,就是定义一个拷贝构造函数,定义一个clone函数,在clone里面new t
阅读全文
摘要:今天在网上看到一篇关于智能指针的文章,感觉很不错,故转载来学习下。 原文出自:https://www.cnblogs.com/lanxuezaipiao/p/4132096.html 导读 最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解
阅读全文
摘要:设计模式,是对软件设计智慧的结晶,也是每一个开发人员应该学习的。 适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式可以分为类适配和对象适配。就开发中实际情况而言,对象适配模式用的相对而言多些,下面笔记中适配器模式就是指对象
阅读全文
摘要:策略模式:把一系列算法封装起来,使之可以相互替换。这样就可以使算法独立于客户端变化。 如我们有很多排序算法,但是在不通的环境中,需要使用不同算法,那就可以定义一个抽象类,提供统一的接口,然后在各个排序算法继承抽象类,并实现该子类的排序算法 ,再定义一个项目类,通过构造函数传入不同算法类的对象或是模板
阅读全文
摘要:没事捣鼓了下相对而言比较简单的工厂模式,然后写了个小Demo,记录下,等十年后看到也是种回忆哈....... 工厂模式一般分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。 一、简单工厂模式: 简单工厂模式,工厂类是创建产品的,它决定创建哪一种产品,就像领导决定采用那种技术方案样。举个例子,现在有
阅读全文
摘要:昨天,一个同事给我出来一道题,让我改错,虽然错误我找出来了,但是改错却没有改对,惭愧啊。所以今天做下笔记,算是给自己一个复习吧。 原题代码如下: 这段代码,一看有个特别明显的错误,就是GetMemory(str)这句,可能有的人在存在疑问,str是指针啊,有什么错误?但是你看GetMemory(ch
阅读全文
摘要:项目用C++和qml联合编程有段时间了,今天抽时间再次复习了,特写下笔记。 在QML中使用C++类型或是属性,有两种方法: a.C++实现一个类,继承自QObject或是是QObject的派生类,并使用Q_OBJECT宏,注册为qml的一个类型。 b.C++中构造一个对象,这个对象继承自QObjec
阅读全文
摘要:今天没有事,复习了下仿函数和函数指针。 仿函数:仿函数(functor),就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 函数指针:函数指针是指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针变量
阅读全文
摘要:今天周五,没有什么事就用回调实现一个简单的数据通讯模型,先解释下基本概念。回调函数:一个通过函数指针调用的函数,把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。 函数指针模型:void(FP*)(),下面我们就用函数指针来实现简单的回调函数。
阅读全文
摘要:今天看了C++Primer的2.5.1的一点小理解。 如果某个类型的别名指代的是复合类型或是常量,那么它用到声明语句里面就会产生意想不到的后果,例如下面的声明语句用到了类型pstring,它实际上是类型char*的别名: 上述两条声明语句的基本数据类型都是const pstring,和过去一样,co
阅读全文
摘要:今天没事看了下C++的构造函数原则,顺便做个笔记,毕竟好记性不如烂笔头,废话不多说,直奔主题了了。 C++构造函数原则归结起来有下面的几条: 1、如果子类没有定义构造函数,则子类默认调用父类无参数的构造函数。 2、如果子类定义了构造函数,不管子类的构造函数是有参数还是没有参数的,在创建子类时,没有显
阅读全文